Why I hate lambdas (Re: Do any of you recommend Python as a first programming language?)

George Sakkis george.sakkis at gmail.com
Sun Mar 23 12:46:57 EDT 2008


On Mar 23, 12:24 pm, a... at pythoncraft.com (Aahz) wrote:

> The problem with lambda is that too often it results in clutter (this is
> a strictly made-up example off the top of my head for illustrative
> purposes rather than any real code, but I've seen plenty of code similar
> at various times):
>
>     gui.create_window(origin=(123,456), background=gui.WHITE,
>         foreground=gui.BLACK, callback=lambda x: x*2)
>
> That means I need to pause reading the create_window() arguments while I
> figure out what the lambda means -- and often the lambda is more
> complicated than that.  Moreover, because the lambda is unnamed, it's
> missing a reading cue for its purpose.

In a sense the lambda here is not unnamed; it's name is the name of
the keyword argument, 'callback', which is indeed a poor name at in
terms of self-documentation. I don't see how replacing the lambda with
a (better) named function would be any better than using the same name
as a keyword parameter.

George



More information about the Python-list mailing list