Version suivante !
Je me suis débarassé des fichiers précédents, et j'ai refait la fonction évaluer (conjointement avec les évaluations plus complexes : if, defun, et même cond !).
On ne lit plus le texte (la partie facile), mais je me suis amusé à évaluer des choses simples dans test.ml :
(+ 1 2) d'abord (ou (+ 2 1), je ne sais plus). Ça fait : 3, car la différence est un entier : 0 (donc : booléen faux).
Et enfin, une définition de la factorielle, avec defun et cond. L'appel se termine (ouf) et renvoie le bon résultat.
La grosse difficulté est levée : on peut stocker une fonction récursive dans une table de hachage alors qu'elle n'est même pas complètement définie !
(cf : evaluer_defun dans src/simplist.ml)
Maintenant, quelques petits tests supplémentaires, et surtout le remplaçant de simplist_read.ml !