Bill Atkins <[EMAIL PROTECTED]> 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.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to