[Python-3000] lambda

Olivier Verdier zelbier at gmail.com
Tue Mar 25 21:42:25 CET 2008


If you ask a scientist, even a computer scientist, what "lambda" means he
will invariably answer that it is a letter in the Greek alphabet. Only a few
people working with lambda calculus will think of "lambda" as being related
to a function. Many beginners (included myself) were puzzled by "lambda" the
first time they meet it. It doesn't look as clean as the rest of python
syntax where you hardly need explain what the keywords mean.

Guido once said that he hadn't found a better name. Well, I think that
almost *any* name will do better! ;-) Especially a name that emphasizes the
fact that lambda construction are in fact functions. This is what Guido
repeats over and over again: lambda is just synctactic sugar for a function
definition. Here are suggestion for a new name for lambda, which will much
better describe what it is, namely a *function*. Since function are defined
with the keyword "def" i'd suggest the following possibilities:
- ldef (local definition, or indeed, lambda definition ;-))
- idef (inline definition)
- cdef (compact definition)
- sdef (shorthand definition)
etc.
anything along theses lines will be more descriptive than "lambda" and most
newcommers will immediately guess what it is about without wading through
the manual. The python code will also be more readable for non python
specialists.

It's too late to change the name lambda in Python 2.x but why not change it
in python 3000 since this release breaks backwards compatibility anyway?

Any thoughts about that? Any ideas of other better names than "lambda"?

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-3000/attachments/20080325/6edfff1d/attachment.htm 


More information about the Python-3000 mailing list