On Sat, Jan 25, 2014 at 12:41 AM, Greg Ewing <greg.ewing at canterbury.ac.nz>wrote: > Brett Cannon wrote: > >> >> On Fri, Jan 24, 2014 at 10:50 AM, Ram Rachum <ram at rachum.com <mailto: >> ram at 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. As the author of the PEP and I can say that `lambda (x, y): x + y` can just as easily be expressed as `lambda x, y: x + y` and then be called by using *args in the argument list. Anything that gets much fancier typically calls for a defined function instead of a lambda. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140125/fd7e5491/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4