“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 85 — #95
i
i
i
i
i
i
i
i
2.6 Du langage noyau au langage pratique
85
statement : :=
if expression then inStatement
{ elseif expression then inStatement }
[ else inStatement ] end
| . . .
inStatement : :=
[ { declPart }+ in ] statement
Tableau 2.5 L’instruction if.
statement : :=
case expression
of pattern [ andthen expression ] then inStatement
{ ´[]´ pattern [ andthen expression ] then inStatement }
[ else inStatement ] end
| . . .
pattern : :=
variable | |atom | |int | |float
| |string | unit | true | false
| |label ´(´ { [ feature ’:’ ] pattern } [ ´...´ ] ´)´
| |pattern consBinOp pattern
| ´[´ { pattern }+ ´]´
consBinOp : := ´#´ | ´|´
Tableau 2.6 L’instruction case.
Les opérateurs andthen et orelse
Les opérateurs andthen et orelse sont utilisés dans les calculs avec les valeurs
booléennes. L’expression
expression 1 andthen expression 2
est traduite en
if expression 1 then expression 2 else false end
L’avantage de andthen est que expression 2 ne sera pas évaluée si expression 1 est
false. Il y a un opérateur orelse avec un comportement analogue. L’expression
expression 1 orelse expression 2
est traduite en
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
2.6 Du langage noyau au langage pratique
85
statement : :=
if expression then inStatement
{ elseif expression then inStatement }
[ else inStatement ] end
| . . .
inStatement : :=
[ { declPart }+ in ] statement
Tableau 2.5 L’instruction if.
statement : :=
case expression
of pattern [ andthen expression ] then inStatement
{ ´[]´ pattern [ andthen expression ] then inStatement }
[ else inStatement ] end
| . . .
pattern : :=
variable | |atom | |int | |float
| |string | unit | true | false
| |label ´(´ { [ feature ’:’ ] pattern } [ ´...´ ] ´)´
| |pattern consBinOp pattern
| ´[´ { pattern }+ ´]´
consBinOp : := ´#´ | ´|´
Tableau 2.6 L’instruction case.
Les opérateurs andthen et orelse
Les opérateurs andthen et orelse sont utilisés dans les calculs avec les valeurs
booléennes. L’expression
expression 1 andthen expression 2
est traduite en
if expression 1 then expression 2 else false end
L’avantage de andthen est que expression 2 ne sera pas évaluée si expression 1 est
false. Il y a un opérateur orelse avec un comportement analogue. L’expression
expression 1 orelse expression 2
est traduite en
© Dunod – La photocopie non autorisée est un délit
