Is this a good use for lambda
Walter S. Leipold
leipoldw at ace-net.com
Sun Dec 19 20:38:28 CET 2004
Steven Bethard wrote:
> Charlie Taylor wrote:
>>I have tried using named functions instead of using lambda functions,
>>however, I always end up with a convoluted, hard to follow mess.
> Well, I think the jury could still be out on which version is more
> readable, but I don't understand the comment "I have tried using
> named functions instead of using lambda functions, however, I
> always end up with a convoluted, hard to follow mess." If you
> know that:
> <name> = lambda *args, **kwds: <expr>
> is eqivalent to:
> def <name>(*args, **kwds):
> return <expr>
> then it's quite straightforward to translate from one to the other.
I think that Charlie's point is that, when you use "def <name>", you have
<name> polluting your namespace. The whole program becomes harder to
understand because you can't ignore <name> anywhere, even if it was only
ever intended to be used in one place. It's a good point, and reasonable
people can disagree about whether the namespace pollution or the
unreadability of lambda is a bigger problem.
I've used lambda from time to time, but only socially, and I can quit any
time I want...
More information about the Python-list