J'ai modifié l'énoncé du projet sur ma page (ajout d'un item, marqué "New!", à la première question du 5.1) pour corriger cet oubli. Toutes mes excuses pour cette approximation. Merci à Arnaud d'avoir repéré l'erreur. On Mon, 10 Jan 2011 13:55:40 +0100, Jean-Yves Moyen <Jean-Yves.Moyen@lipn.univ-paris13.fr> wrote:
On Mon, 10 Jan 2011 13:05:32 +0100, Arnaud Lecointre <lec.arnaud@gmail.com> wrote:
Bonjour,
Dans le projet, quand on doit coder le foncteur EnvMake, il faut pouvoir manipuler des environnements (grace à bind_many, merge, merge_disjoint et extend). Autant bind_many est simple car on connait le format d'entrée (une (variable * 'a) list) autant les autres fonctions paraissent plus dur. La seule forme de matching qu'on connaisse est le empty qu'on connait car définit dans chaque module de base. Mais on ne connait pas le type de l'environnement à l'avance et donc agir en conséquence. J'ai beaucoup cherché sur Internet mais je n'ai rien trouvé concernant ce cas précis.
Donc comment matcher l'environnement dont on ne connait pas forme dans les fonctions du foncteur ? (ou s'il y a une autre solution)
Oui, effectivement.
Il faut rajouter une fonction (dans la signature ENV_CORE) pour renvoyer la liste des variables liées par l'environnement. Je modifie le sujet de suite.
-- Cordialement, Jean-Yves Moyen. http://www-lipn.univ-paris13.fr/~moyen/