“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 82 — #92
i
i
i
i
i
i
i
i
82
2
• La programmation déclarative
leur donnons du sucre syntaxique. Par exemple, nous étendons la syntaxe pour permettre l’écriture de person(name:"George" age:25) au lieu de la version
plus encombrante :
local A B in A="George" B=25 X=person(name:A age:B) end
où X est liée à l’enregistrement imbriqué.
L’initialisation implicite des variables
Pour rendre les programmes plus courts et plus faciles à lire, on utilise du sucre
syntaxique pour lier une variable tout de suite à sa déclaration. L’idée est de mettre une
opération de lien entre local et in. Au lieu de local X in X=10 {Browse
X} end, dans laquelle X est mentionnée trois fois, le raccourci permet d’écrire local
X=10 in {Browse X} end, qui mentionne X seulement deux fois. Voici un cas
simple :
local X=expression in statement end
Cette instruction déclare X et la lie au résultat de expression. Le cas général est :
local pattern=expression in statement end
où pattern est n’importe quelle valeur partielle (toutefois avec tous les identificateurs
distincts). On déclare d’abord toutes les variables dans pattern et ensuite on lie
pattern au résultat de expression. La règle générale dans les deux exemples est que
les identificateurs à gauche de l’égalité « = », c’est-à-dire X ou les identificateurs dans
pattern, sont ceux qui sont déclarés. Les identificateurs à droite ne sont pas déclarés.
L’initialisation implicite des variables est commode pour la création d’une structure
de données complexe quand nous avons besoin des variables à l’intérieur de la structure.
Par exemple, si T n’est pas liée, alors cette instruction :
local tree(key:A left:B right:C value:D)=T in
statement
end
construira l’enregistrement tree, le liera à T et déclarera A, B, C et D en tant que
parties de T. C’est strictement équivalent à :
local A B C D in
T=tree(key:A left:B right:C value:D) statement
end
Précédent

- 97/370

Suivant