7 Mar
2016
7 Mar
'16
20:34
sqr = lambda x -> x * x; En Pexp cela donne Pcall("_=_", [Pvar(); Plambda()])
Selon où cela apparaît, c'est une erreur. Au "top-level" d'un fichier, cela ne devrait pas donner un Pexp parce qu'un fichier n'est pas constitué d'une séquence d'expressions, mais d'une séquence de déclarations. De même, pour let sqr = lambda x -> x * x in sqr qui ne devrait pas avoir de Pcall("_=_", [Pvar(); Plambda()]) dans sa représentation Pexp.
Devrais-je créer un nouveau type Lexp.Decl(Var, Lexp) pour différentier entre les deux plus facilement ?
Probablement qu'il faut corriger au niveau Pexp d'abord. Le problème pourrait venir directement de main.ml, en fait. Stefan