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

Reply via email to