What does a list comprehension do

Antoon Pardon antoon.pardon at rece.vub.ac.be
Thu Nov 26 09:26:47 EST 2015


Op 26-11-15 om 14:56 schreef Marko Rauhamaa:
> Antoon Pardon <antoon.pardon at rece.vub.ac.be>:
>
>> I don't understand. What I propose would be a minor change in
>> how list comprehension works. I don't see how your example
>> can be turned into a list comprehension.
> The list comprehension is only a special case of the interaction between
> closures and variables. If you dabble with list comprehensions and
> lambdas, you'll need to make consistent changes in closure semantics.

It would only dabble with the list comprehension not with the lambda.
The effect of the change would only be that a list comprehension like

    [ <expression> for <var> in <iter> ]

would implicitly be rewritten as follows:

    [ (lambda <var>: <expression>)(<var>) for <var> in <iter>]

There would no change on how lambdas work or functions or closures.

> BTW, all(!?) other languages from Java to Scheme share closure semantics
> with Python so you would really be making a mess by changing Python.

Not this proposal, which wouldn't touch closure semantics.

-- 
Antoon.




More information about the Python-list mailing list