/[svn]/tests/overloading.cd
ViewVC logotype

Contents of /tests/overloading.cd

Parent Directory Parent Directory | Revision Log Revision Log


Revision 36 - (show annotations)
Tue Jul 10 16:59:49 2007 UTC (5 years, 10 months ago) by abate
File size: 712 byte(s)
[r2002-10-22 14:01:35 by cvscast] Empty log message

Original author: cvscast
Date: 2002-10-22 14:01:36+00:00
1 type Person = FPerson | MPerson;;
2 type FPerson = <person gender=["F"]>[ Name Children ];;
3 type MPerson = <person gender=["M"]>[ Name Children ];;
4 type Children = <children>[Person*];;
5 type Name = <name>[String];;
6
7 type Man = <man>[ Name Sons Daughters ];;
8 type Woman = <woman>[ Name Sons Daughters ];;
9 type Sons = <sons>[ Man* ];;
10 type Daughters = <daughters>[ Woman* ];;
11
12 let fun sort (MPerson -> Man ; FPerson -> Woman)
13 <person gender=g>[ n <children>[(mc::MPerson | fc::FPerson)*] ] ->
14 let tag = match g with ["F"] -> `woman | ["M"] -> `man in
15 let s = map mc with (x & MPerson) -> sort x in
16 let d = map fc with x -> sort x in
17 <(tag)>[ n <sons>s <daughters>d ]
18 in sort;;

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5