Common LISP-style closures with Python

Antti J Ylikoski antti.ylikoski at tkk.fi
Sat Feb 4 05:14:59 EST 2012


On 4.2.2012 4:47, Chris Rebert wrote:
> 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

I understand that a "closure" is something which is typical of 
functional programming languages.  -- Scheme-style closures, for example.

I don't know Haskell, ML etc. but I do suspect that we could create 
closures in those languages as well.  Maybe someone more expert than me 
can help?

regards, Andy




More information about the Python-list mailing list