[Python-Dev] Recommend accepting PEP 312 -- Simple Implicit Lambda
Donovan Baarda
abo at minkirri.apana.org.au
Sun Jun 19 16:55:29 CEST 2005
Nick Coghlan wrote:
> Donovan Baarda wrote:
>
>>As I see it, a lambda is an anonymous function. An anonymous function is
>>a function without a name.
>
>
> And here we see why I'm such a fan of the term 'deferred expression'
> instead of 'anonymous function'.
But isn't a function just a deferred expression with a name :-)
As a person who started out writing assembler where every "function" I
wrote was a macro that got expanded inline, the distiction is kinda
blurry to me.
> Python's lambda expressions *are* the former, but they are
> emphatically *not* the latter.
Isn't that because lambda's have the limitation of not allowing
statements, only expressions? I know this limitation avoids side-effects
and has significance in some formal (functional?) languages... but is
that what Python is? In the Python I use, lambda's are always used where
you are too lazy to define a function to do it's job.
To me, anonymous procedures/functions would be a superset of "deferred
expressions", and if the one stone fits perfectly in the slingshot we
have and can kill multiple birds... why hunt for another stone?
Oh yeah Raymond: on the "def defines some variable name"... are you
joking? You forgot the smiley :-)
I don't get what the problem is with mixing statement and expression
semantics... from a practial point of view, statements just offer a
superset of expression functionality.
If there really is a serious practical reason why they must be limited
to expressions, why not just raise an exception or something if the
"anonymous function" is too complicated...
I did some fiddling and it seems lambda's can call methods and stuff
that can have side effects, which kinda defeats what I thought was the
point of "statements vs expressions"... I guess I just don't
understand... maybe I'm just thick :-)
> Anyway, the AlternateLambdaSyntax Wiki page has a couple of relevant
> entries under 'real closures'.
Where is that wiki BTW? I remember looking at it ages ago but can't find
the link anymore.
--
Donovan Baarda
More information about the Python-Dev
mailing list