Précédent Index Suivant



Le Filtrage




match   Vwith   (| F -> E)

avec la notation

| F -> E =
ì
í
î
| F1 -> E1
...
| Fn -> En

À l'appel, le paramètre effectif V qui est l'évaluation de l'expression V dans l'environnement courant est ``superposé'' avec les filtres Fi dans l'ordre du texte.

On peut donc énoncer une règle pour l'évaluation d'un filtre :
V -E-> V,
$ i (| Fi ® Ei) Î (| F ® E)
et i est le premier indice qui
produise des liaisons Ei de
let Fi = V,
Ei -(Ei Å E)-> R
[match V with (| F ® E)] -E-> R

La construction match V with | F ® E
est équivalente à (function | F ® E) V. On peut ajouter des conditions a une clause de filtrage Fi qui a alors la forme :
| Fiwhen Ci-> Ei

Ci est une expression qui doit être de type bool. Elle est évaluée dans l'environnement d'exécution du corps de la clause :

Si V est le paramètre effectif, et si E est l'environnement courant, Ei et Ci s'évaluent tous deux dans Ei Å E qui est E augmenté des liaisons Ei produites pendant le filtrage.

cette construction est à éviter


Précédent Index Suivant