Voilà j'ai besoin de vous pour créer une fonction, cela fait 2 jours que je comprend vraiment pas comment je peux faire ça:

Écrire la définition complète de la fonction expr->agb qui, pour une ExprBoolPrefixe E donnée, représentant une expression bien formée, rend l’ArbreGenBool représentant cette liste E.

Par exemple :

(expr->agb ’v) rend l’arbre représenté par:

(expr->agb ’(et (ou v f) (non f))) rend l’arbre représenté par:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
(ag-noeud ’et
          (list (ag-noeud ’ou
                          (list (ag-noeud ’v (list))
                                (ag-noeud ’f (list))))
                (ag-noeud ’non
                          (list (ag-noeud ’f (list))))))
(expr->agb ’(non (et (ou v f) (et v v)))) rend l’arbre représenté par:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
(ag-noeud ’non
          (list (ag-noeud ’et
                          (list (ag-noeud ’ou
                                         (list (ag-noeud ’v (list))
                                               (ag-noeud ’f (list))))
                     (ag-noeud ’et
                               (list (ag-noeud ’v (list))
                               (ag-noeud ’v (list))))))))
(expr->agb ’(non (non v))) rend l’arbre représenté par:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
(ag-noeud ’non
          (list (ag-noeud ’non
                          (list (ag-noeud ’v (list))))))
Le principe c'est que je dois créer un évaluateur et je dois pouvoir etudier 4 formules qui sont:

v
(et (ou v f) (non f))
(non (et (ou v f) (et v v)))
(non (non v))

mais pour ça faut pouvoir les transforrmer en arbre.

Si vous pouviez m'aider, me mettre sur la piste ou n'importe quoi d'autre je suis preneur.

Merci d'avance,