[Python-ideas] A simple proposal concerning lambda

MRAB python at mrabarnett.plus.com
Tue Aug 21 21:24:35 EDT 2018


On 2018-08-22 01:25, Jonathan Fine wrote:
> Hi Abe
> 
> Summary: You've done good work here. I've skim read the 2006
> discussion you found.
> 
> You wrote:
> 
>> I'm trying to dig up past threads about alternatives to lambda because I
>> would be astonished if "def" hadn't been considered and rejected for some
>> reason. What I've found so far is this unreassuring  post from Guido back in
>> 2006
> 
>> [Python-Dev] Let's just *keep* lambda
>> https://mail.python.org/pipermail/python-dev/2006-February/060415.html
> 
> This is an excellent piece of work. I'm most grateful. Here's what Guido said:
> 
>> After so many attempts to come up with an alternative for lambda,
>> perhaps we should admit defeat. I've not had the time to follow the
>> most recent rounds, but I propose that we keep lambda, so as to stop
>> wasting everybody's talent and time on an impossible quest.
> 
> I've quickly read through the posts that followed Guido's message,
> picked out the ones that interest me. Here's a list.
> 
>> https://mail.python.org/pipermail/python-dev/2006-February/060487.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060474.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060471.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060445.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060435.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060431.html
>> https://mail.python.org/pipermail/python-dev/2006-February/060470.html
> 
> And one of the messages had a link to still live and excellent page
> 
>> https://wiki.python.org/moin/AlternateLambdaSyntax
> 
> This page lists over 100 suggestions, mostly variants. So far as I can
> see, my simple proposal isn't listed on that page. The page also says
> 
Hmm.

That lists:

     def (a, b, c): return f(a) + o(b) - o(c)

and:

     def (a, b, c) = f(a) + o(b) - o(c)

but not:

     def (a, b, c): f(a) + o(b) - o(c)

>> **Definitely Desirable Features**
> [snip]
>> *More friendly to inexperienced users*
> [snip]
>> Compared to other Python keywords, 'lambda' is rather esoteric.
>> In the challenge for "farthest outside day-to-day English usage",
>> its closest competitor would probably be 'assert', as even 'def'
>> and 'elif' are just abbreviations for 'define' and 'else if'. Use of
>> simpler keywords may make deferred expressions appear less
>> intimidating than they seem with the current unusual keyword.
> 
> The word 'deferred' appears 7 times on the page. It also appears in
> the python-dev messages.
> 
> If someone with more time and less bias then myself were to summarise
> this discussion from 2006, I'd be most grateful, and they'd have
> material for a great blog post.
> 
> Finally, many thanks to Abe for finding this gem, and countless
> people's hard work in keeping it alive to be found. Backwards
> compatibility is there for a reason.
> 


More information about the Python-ideas mailing list