A critic of Guido's blog on Python's lambda
Alex Martelli
aleaxit at yahoo.com
Sun May 7 15:34:37 EDT 2006
Frank Buss <fb at frank-buss.de> wrote:
> Alex Martelli wrote:
>
> > 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))
> > '()))
>
> You are right, for this example it is not useful. But I assume you need
> something like lambda for closures, e.g. from the page
Wrong and unfounded assumption.
> http://www.frank-buss.de/lisp/texture.html :
>
> (defun black-white (&key function limit)
> (lambda (x y)
> (if (> (funcall function x y) limit)
> 1.0
> 0.0)))
>
> This function returns a new function, which is parametrized with the
> supplied arguments and can be used later as building blocks for other
> functions and itself wraps input functions. I don't know Python good
> enough, maybe closures are possible with locale named function definitions,
> too.
They sure are, I gave many examples already all over the thread. There
are *NO* semantic advantages for named vs unnamed functions in Python.
Not sure what the &key means here, but omitting that
def black_white(function, limit):
def result(x,y):
if function(x, y) > limit: return 1.0
else: return 0.0
return result
Alex
More information about the Python-list
mailing list