From 59ee1bfd7c430576427943384f2e52efb9b3da08 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 20 Dec 2005 22:38:38 +0000 Subject: full disjunctive patterns ; more prec levels for Exp --- doc/tutorial/gf-tutorial2.txt | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'doc/tutorial/gf-tutorial2.txt') diff --git a/doc/tutorial/gf-tutorial2.txt b/doc/tutorial/gf-tutorial2.txt index 0d530c22a..9ba3a9619 100644 --- a/doc/tutorial/gf-tutorial2.txt +++ b/doc/tutorial/gf-tutorial2.txt @@ -1704,6 +1704,36 @@ Product types and tuples are syntactic sugar for record types and records: Thus the labels ``p1, p2,...``` are hard-coded. +===Record and tuple patterns=== + +Record types of parameter types are also parameter types. +A typical example is a record of agreement features, e.g. French +``` + oper Agr : PType = {g : Gender ; n : Number ; p : Person} ; +``` +Notice the term ``PType`` rather than just ``Type`` referring to +parameter types. Every ``PType`` is also a ``Type``. + +Pattern matching is done in the expected way, but it can moreover +utilize partial records: the branch +``` + {g = Fem} => t +``` +in a table of type ``Agr => T`` means the same as +``` + {g = Fem ; n = _ ; p = _} => t +``` +Tuple patterns are translated to record patterns in the +same way as tuples to records; partial patterns make it +possible to write, slightly surprisingly, +``` + case of { + => t + ... + } +``` + + %--! ===Prefix-dependent choices=== -- cgit v1.2.3