A critic of Guido's blog on Python's lambda
aleaxit at yahoo.com
Sun May 7 20:57:58 CEST 2006
Frank Buss <fb at frank-buss.de> wrote:
> Alex Martelli wrote:
> > I cannot conceive of one. Wherever within a statement I could write the
> > expression
> > lambda <args>: body
> > I can *ALWAYS* obtain the identical effect by picking an otherwise
> > locally unused identifier X, writing the statement
> > def X(<args>): body
> > and using, as the expression, identifier X instead of the lambda.
> This is true, but with lambda it is easier to read:
> Would be interesting to see how this would look like in Python or some of
> the other languages to which this troll thread was posted :-)
Sorry, but I just don't see what lambda is buying you here. Taking just
one simple example from the first page you quote, you have:
(defun blank ()
"a blank picture"
(lambda (a b c)
(declare (ignore a b c))
which in Python would be:
" a blank picture "
return lambda a, b, c: 
while a named-function variant might be:
def blank_picture(a, b, c): return 
Where's the beef, really? I find the named-function variant somewhat
more readable than the lambda-based variant, but even if your
preferences are the opposite, this is really such a tiny difference that
I can't see why so many bits should gets wasted debating it (perhaps
it's one of Parkinson's Laws at work...).
More information about the Python-list