Browse thread
Re: Syntax for label
[
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: | Pierre Weis <Pierre.Weis@i...> |
| Subject: | Re: Syntax for label, NEW PROPOSAL |
> There may indeed be good reasons for let-binding. > However, if you look at the sources of ocaml, you will see that in > many, many places such functions are defined inline without > let-binding. I see two reasons for that: > * you often don't want to think of a name for such a function > (most of them are just 2 or 3 line long) Is this argument relevant to the problem at hand ? You were speaking of the advantage of using a label fun: for applying map to a ``long multi line function definition'': > fun:(fun long multi line function definition here) If the function is ``long'' and multi line, I definitively prefer a let binding. If it is not ``long'' I prefer no label and a short and elegant (fun x -> ...). > * it forces you to move the code around in a way that is not > necessarily very natural. It's a bit like RPN: first define a > function, then apply a functional to it. > (We could of course ressucite the where clause :-) Yes that's fundamentally the way it goes in Caml: define first something then use it (static binding). I'm sorry, we removed the where construct a long time ago exactly with this argument. As you say below ``More generally, my experience is that'' * once anonymous functions are named, the code is clearer * when anonymous functions are ``long multi line'' the code is obscure. > More generally, my experience is that more freedom in the way to > layout them increases the use of functionals. After all there are many > ways to see the same function, different logical understanding of its > meaning. And the fact you can use all these ways with the same function > avoids confusion. > Why should we decide that one way is right, and others are wrong? You already answered to this question in your paragraph: I would answer in the first place with the very reasons you are advocating to ask why we should decide; you wrote ``my experience'', ``logical understanding'', ``avoids confusion''. So, we should decide that one way is right based on experience, theorems, confusion avoidance, logical understanding, .... Amicalement, -- Pierre Weis INRIA, Projet Cristal, http://pauillac.inria.fr/~weis