Browse thread
- Michel.Levy@i...
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Michel.Levy@i... |
| Subject: |
Pouvez-vous, je vous prie, répondre à quelques questions à propos de camllight
1) L'expression
let rec x = 1 :: x ;;
est de type int list. Son exécution crée-t-elle une fermeture ?
Je lis d'ailleurs dans le "Doc et user's manual" : the behavior of other
forms of let rec (formes autres que des définitions de fonction) is
implementation-dependant.
2) Pourquoi le typeur accepte la définition récursive précédente mais
21)refuse la modification suivante du programme minicaml (cf Le langage
caml de Pierre Weiss et Xavier Leroy p 352) :
let rec env_étendu =
(déf.Nom, Val_fermeture
{ Définition = liste_de_cas ; Environnement = env_étendu}) ::
env_courant
sous le prétexte que déf.Nom n'est pas acceptable dans une définition récursive
22)accepte par contre
let nom = déf.Nom in
let rec env_étendu =
(nom, Val_fermeture
{ Définition = liste_de_cas ; Environnement = env_étendu}) ::
env_courant
Remarque : mon but était d'éviter les types mutables pour représenter les
environnements.
Michel Levy
L.S.R.
BP53x - 38041 Grenoble cedex - France
Tel : 76827246
e.mail : Michel.Levy@imag.fr