let rec rechercher_formule table = function
Mot mot -> Hashtbl.find table mot
| Et(f1, f2) -> SceneSet.inter (rechercher_formule table f1)
(rechercher_formule table f2)
| Ou(f1, f2) -> SceneSet.union (rechercher_formule table f1)
(rechercher_formule table f2)
| Moins(f1, f2) -> SceneSet.diff (rechercher_formule table f1)
(rechercher_formule table f2);;
Nous définissons rechercher_formule par
induction sur la structure de la formule. Pas de mystère, c'est une
façon canonique de définir le résultat de l'évaluation d'une formule,
qui pourrait être appliquée à des formules arithmétiques, par exemple.
afficher_scenes (rechercher_formule table (Et(Mot("trouver"), Mot("lorsque"))));
print_newline ();;