Multiline lamba implementation in python.
kay.schluehr at gmx.net
Tue Jun 12 17:36:55 CEST 2007
On 12 Jun., 16:54, George Sakkis <george.sak... at gmail.com> wrote:
> On Jun 12, 10:12 am, Kay Schluehr <kay.schlu... at gmx.net> wrote:
> > On 12 Jun., 14:57, Facundo Batista <facu... at taniquetil.com.ar> wrote:
> > > Remember that the *only* difference between the two functions is that
> > > one is anonymous, and for other you have to came up with a name (name
> > > that if is well thought, actually adds readibility to your code).
> > The difference is that one can be inlined since it is an expression
> > and the other has to be a statement and a reusable ( named )
> > abstraction even when you don't need one. I have a very hard time to
> > defend this as a good design decision even when it is just a minor
> > pain point in almost all my practical purposes.
> I think of it more as a "necessary evil" rather than a conscious
> design choice. IIRC the "official" justification is that nobody came
> up with an acceptable syntax for multiline lambdas;
Translating this into unofficial language: Guido just didn't care a
lot about lambda and found no one of the alternative proposals
compelling. If he's actually interested in a language feature he fixes
syntax quite fast.
> TOOWTDI is a
> secondary reason (as one can easily come up with a dozen TOOWTDI
> violations in other parts of the language). I agree though that in
> practice it's a very small limitation.
But in the case we are discussing here it is really not obvious.
That's why the community as well as the public opinion when discussing
Python returns to the topic every once in a while. We agree about this
issue being a minor limitation but I'd vote nevertheless +1 for either
removing lambda or liberating it from the restriction of containing an
expressions only. When Guido decided to use @ to prefix a decorator
half of the Python community screamed in Perl Angst. Nothing
particularly happened. Same thing with Lisp Angst and putting a
statement into parens. Nothing special will happen either. A few hurt
souls initially and Python-as-usual after the first excitements.
More information about the Python-list