| 1 |
type Company = <company>[ Worker* ];;
|
| 2 |
type Worker = <worker>[Surname Name Salary];;
|
| 3 |
type Surname = <surname>String;;
|
| 4 |
type Name = <name>String;;
|
| 5 |
type Salary = <salary>[Int];;
|
| 6 |
type PlusQueMoi = <salary>[5000--10000000];;
|
| 7 |
|
| 8 |
let my_company : Company =
|
| 9 |
<company>[
|
| 10 |
<worker>[
|
| 11 |
<surname>"Durand"
|
| 12 |
<name>"Paul"
|
| 13 |
<salary>[6500]
|
| 14 |
]
|
| 15 |
<worker>[
|
| 16 |
<surname>"Dupond"
|
| 17 |
<name>"Jean"
|
| 18 |
<salary>[1800]
|
| 19 |
]
|
| 20 |
<worker>[
|
| 21 |
<surname>"Martin"
|
| 22 |
<name>"Jules"
|
| 23 |
<salary>[1800]
|
| 24 |
]
|
| 25 |
] in
|
| 26 |
|
| 27 |
|
| 28 |
let q1 =
|
| 29 |
let <company> x = my_company in
|
| 30 |
map x with <worker>[x y z ] -> <worker>[x y] in
|
| 31 |
|
| 32 |
|
| 33 |
let q2 =
|
| 34 |
let <company>[(x::<worker>[ Any Any PlusQueMoi ] | _)*] = my_company in
|
| 35 |
map x with <worker>[x y z ] -> <worker>[x y] in
|
| 36 |
|
| 37 |
(q1,q2);;
|