Brett Cannon wrote:

On Fri, Jan 24, 2014 at 10:50 AM, Ram Rachum <r...@rachum.com <mailto:r...@rachum.com>> wrote:

        lambda (x, y): whatever

http://python.org/dev/peps/pep-3113/

Part of the rationale in that PEP is that argument unpacking
can always be replaced by an explicitly named argument and
an unpacking assignment. No mention is made of the fact that
you can't do this in a lambda, giving the impression that
lambdas are deemed second-class citizens that are not worth
consideration.

The author was clearly aware of the issue, since a strategy
is suggested for translation of lambdas by 2to3:

   lambda (x, y): x + y --> lambda x_y: x_y[0] + x_y[1]

That's a bit on the ugly side for human use, though.
An alternative would be

   lambda xy: (lambda x, y: x + y)(*xy)

Whether that's any better is a matter of opinion.

--
Greg
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to