Effectivement, J'avais mis le commentaire quand j'avais commencé à écrire eval. Je retourne un environnent car eval est aussi utilisée pour ajouter des définitions.
a = lambda x -> x + x
Est-ce que j'aurais du utiliser la liste de myers que j'ai construite pendant le lexp parsing comme environnement ? (En ce moment, le contexte de lexp est discarded et la liste est reconstruite à partir de zero)
Jusqu'à maintenant les utilisations basiques de let/case/inductive/cons/lambda marchent. Cependant, il faut faire attention avec les inductive-cons qui n'ont pas d'argument car ils ne sont pas reconnus dans un case.
case x | z ->
Nous n'avons pas l'information nécessaire pour savoir si z est un constructeur sans argument ou si z est une variable.
En ce moment, je suis entrain de déboguer la fonction suivante:
tonum = lambda x -> case x | (succ y) => (1 + (tonum y)) | _ => 0;
(tonum x);
L'évaluation de tonum est bloqué à l'évaluation de y.