better lambda support in the future?

Terry Reedy tjreedy at udel.edu
Fri Dec 17 18:16:08 EST 2004


"Jason Zheng" <jzheng at jpl.nasa.gov> wrote in message 
news:cpvhee$7uh$1 at nntp1.jpl.nasa.gov...
> Steven Bethard wrote:
>> Jason Zheng wrote:
>>
>>> I'm wondering why python still has limited lambda support. What's 
>>> stopping the developers of python to support more lisp-like lambda 
>>> function?

They already have: given the fundamental syntax difference between all 
expressions and expressions within statements, def statements are at least 
the equivalent of lisp lambdas + name binding.  When you get an exception 
traceback, a unique name is more helpful than the pseudoname <lambda>. 
Isolating the definition of a function in a separate statement also makes 
it possible to unittest the function.

>> This comes up every few weeks on the list.  If you haven't already, 
>> check the archives in Google for 'anonymous def' or 'anonymous 
>> function'.  The usual response to this question is something along the 
>> lines of "if it's good enough to create a function for, it's good enough 
>> to name".

What puzzles me is 1) why some people apparently think anonymity is good --  
is it really that hard to name non-trivial functions? and 2) why some 
people are so quick to recommend changes to Python before they understand 
what they can already do (wth def statements, in this case).

> The true beauty of lambda function is not the convenience of creating 
> functions without naming them. Lambda constructs truly enables 
> higher-order function.

And so do Python def statements coupled with Python design principles.  In 
Python at least, the beauty of first-class functions has nothing to do with 
'lambda'.

> For example, I can create a function A that returns a function B that 
> does something interesting according to the arguments that I pass to 
> function A.

Golly gee.  Pythoneers have done this with def for at least a decade, if 
not from the very beginning.

Terry J. Reedy






More information about the Python-list mailing list