Voici deux optimisations qu'on pourrait faire pour build :
La fonction auxiliaire dans build prendrait un tableau en argument correspondant aux valeurs de vérités de chaque variable (None si pas de valeur, et Some b si valeur). De ce cas là, la fonction replace ne serait pas utilisée.
La fonction getBool renverrait une expression simplifiée de l'expression évalué, en plus de la valeur de vérité. Cela permettrait de supprimer, lors de l'évaluation, des expressions inutiles. Par exemple, lorsqu'on a (x ou (0 et y)), on renvoie x et none (pour la valeur de vérité).
Voici deux optimisations qu'on pourrait faire pour
build
:La fonction auxiliaire dans
build
prendrait un tableau en argument correspondant aux valeurs de vérités de chaque variable (None
si pas de valeur, etSome b
si valeur). De ce cas là, la fonction replace ne serait pas utilisée.La fonction
getBool
renverrait une expression simplifiée de l'expression évalué, en plus de la valeur de vérité. Cela permettrait de supprimer, lors de l'évaluation, des expressions inutiles. Par exemple, lorsqu'on a(x ou (0 et y))
, on renvoiex
et none (pour la valeur de vérité).