Common LISP-style closures with Python

Chris Rebert clp2 at rebertia.com
Sat Feb 4 03:47:20 CET 2012


On Fri, Feb 3, 2012 at 4:27 PM, Antti J Ylikoski <antti.ylikoski at tkk.fi> wrote:
>
> In Python textbooks that I have read, it is usually not mentioned that
> we can very easily program Common LISP-style closures with Python.  It
> is done as follows:
>
> -------------------------------------
>
> # Make a Common LISP-like closure with Python.
> #
> # Antti J Ylikoski 02-03-2012.
>
> def f1():
>    n = 0
>    def f2():
>        nonlocal n
>        n += 1
>        return n
>    return f2
<snip>
> i. e. we can have several functions with private local states which
> are kept between function calls, in other words we can have Common
> LISP-like closures.

Out of curiosity, what would be non-Common-Lisp-style closures?

Cheers,
Chris



More information about the Python-list mailing list