> 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 WeisINRIA, Projet Cristal, http://pauillac.inria.fr/~weis
This archive was generated by hypermail 2b29 : Fri Mar 17 2000 - 17:24:30 MET