Rhodri James wrote:
On Fri, 13 Mar 2009 14:49:17 -0000, Beni Cherniavsky
<beni.cherniav...@gmail.com> wrote:
Specification
=============
Allow keyword arguments in function call to take this form:
NAME ( ARGUMENTS ) = EXPRESSION
which is equivallent to the following:
NAME = lambda ARGUMENTS: EXPRESSION
except that NAME is also assigned as the function's `__name__`.
My first instinct on seeing the example was that "key(n)" was a function
*call*, not a function definition, and to remember the thread a month or
two ago about assigning to the result of a function call. I'm inclined
to think this would add confusion rather than remove it.
Guido wants to keep the syntax LL(1), so you're not the only one who has
a problem with it! :-)
I think that:
def NAME ( ARGUMENTS ): EXPRESSION
is still LL(1).
For example:
>>> sorted(range(9), def key(n): n % 3)
[0, 3, 6, 1, 4, 7, 2, 5, 8]
--
http://mail.python.org/mailman/listinfo/python-list