“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 102 — #112
i
i
i
i
i
i
i
i
102
2
• La programmation déclarative
proc {Test X}
case X
of a|Z then {Browse ´case´(1)}
[] f(a) then {Browse ´case´(2)}
[] Y|Z andthen Y==Z then {Browse ´case´(3)}
[] Y|Z then {Browse ´case´(4)}
[] f(Y) then {Browse ´case´(5)}
else {Browse ´case´(6)} end
end
Sans exécuter l’exemple dans le Labo interactif ou le système Mozart, pronostiquez ce qui se passe quand on exécute les appels suivants : {Test [b c a]},
{Test f(b(3))}, {Test f(a)}, {Test f(a(3))}, {Test f(d)},
{Test [a b c]}, {Test [c a b]}, {Test a|a} et {Test ´|´(a
b c)}. Utilisez la traduction en langage noyau et la sémantique si nécessaire
pour faire vos prédictions. Après les prédictions, vérifiez vos connaissances par
l’exécution des exemples.
➤ Exercice 6 — Encore l’instruction case
Prenez la procédure suivante :
proc {Test X}
case X of f(a Y c) then {Browse ´case´(1)}
else {Browse ´case´(2)} end
end
De la même manière que l’exercice précédent, pronostiquez ce qui se passe
quand on exécute :
declare X Y {Test f(X b Y)}
La même chose pour :
declare X Y {Test f(a Y d)}
La même chose pour :
declare X Y {Test f(X Y d)}
Utilisez la traduction en langage noyau et la sémantique si nécessaire pour faire
les prédictions. Après les prédictions, vérifiez vos connaissances par l’exécution
des exemples.
Précédent

- 117/370

Suivant