A critic of Guido's blog on Python's lambda
Paul Rubin
http
Sat May 6 21:29:35 EDT 2006
Bill Atkins <NOatkinwSPAM at rpi.edu> writes:
> Does Python have any support for closures? If so, ignore this point.
> But if not, what about examples like this:
>
> (defun make-window (window observer)
> ;; initialization code here
> (add-handler window 'close
> (lambda (event)
> (notify observer event)))
> ;; more code)
Python has closures but you can only read the closed variables, not
write them.
> Being able to keep pass around state with functions is useful.
>
> There are also cases where a function is so trivial that the simplest
> way to describe it is with its source code, where giving it a name and
> putting it at the beginning of a function is just distracting and
> time-consuming. E.g.:
>
> (remove-if (lambda (name)
> (find #\- name :test #'char=))
> list-of-names)
If I read that correctly, in Python you could use
filter(list_of_names, lambda name: '-' not in name)
or
[name for name in list_of_names if '-' not in name]
Both of these have become more natural for me than the Lisp version.
More information about the Python-list
mailing list