Re: Syntax for label, NEW PROPOSAL

From: Pierre Weis (Pierre.Weis@inria.fr)
Date: Fri Mar 17 2000 - 17:08:57 MET

  • Next message: Don Syme: "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



    This archive was generated by hypermail 2b29 : Fri Mar 17 2000 - 17:24:30 MET