[python] Having trouble seeing the need to use lambda, ever.

For all coding issues - MODers and programmers, HTML and more.

Moderators: Jeff250, fliptw

Post Reply
User avatar
Isaac
DBB Artist
DBB Artist
Posts: 7127
Joined: Mon Aug 01, 2005 8:47 am
Location: Ơ̸̦͇̲̬̭̱̰͎̞͈̣͎͚̳ͬ͋̃̀̇͊͂͋͐ͦ̽ͣ̂ͥ͊̅̀̚͠ B̶͖̯͉̜̰̲̓̔͋̈́ͅ È̯ Y̪̤̼͉̠̙͝

[python] Having trouble seeing the need to use lambda, ever.

Post by Isaac » Tue Jan 15, 2013 8:45 pm

It seems to do exactly what a simple function would do, less the use of the return syntax and maybe writing parenthesis. That really doesn't save anybody time. The cost of a () and a return is insignificant. writing asdf=lambda x: is more work than typing def asdf (x):

Maybe lambda does something I'm missing? I think it goes against Pythons whole "there should only be one way of doing stuff" mentality. It probably should be removed.


edit: and this is for python
s☼-£♦и̫͍ͥ̍ͪ͌̓͗͡о̡̹̱͊̅ͮ̓̕͢б̧̝̻̪̤̳̜͐̓̉ͤ͢͜ ͙̬͙̆̑ͮ̐ͭ̾̂́͘i̎̌̾̓̽̀̈̓̀҉͉̙̦͎̘̝͕f̻͕͔̘ͣͣ̓͊̿͢͜ ͍͔͈͕̮̫ͣ̆ͮ̊͋/♂6Æ!♪╩"▲L└уͭ̂͐̇҉̴̣̼̞̠̯͓̺̞ф̜̊͌̈́̋̏̐́ц̨͔̮̿̇ ̨̛͖̙͖̖̮̗̱ͩ̆͞ͅа̥͇̞̖͚̟̅͐ͤ͞͠͠э̜̘̩̳̬͔̾ͯ̀ͫ̒̐̿ͅͅг̭̖̀ͦ̒̑ͥ̌ͮͫ͞ё͔̟̃ͬ̾̓͟ё̦̞̙̫͔̩͑̀͂ͯ̄̔̃̑̀͠ͅͅ
User avatar
vision
DBB Defender
DBB Defender
Posts: 3431
Joined: Thu Feb 18, 2010 1:54 pm
Location: Mars

Re: Having trouble seeing the need to use lambda, ever.

Post by vision » Tue Jan 15, 2013 10:29 pm

I've never used lambda. Maybe there is a practical performance reason for using it?
User avatar
Jeff250
DBB Master
DBB Master
Posts: 6387
Joined: Sun Sep 05, 1999 2:01 am
Location: ☃☃☃

Re: Having trouble seeing the need to use lambda, ever.

Post by Jeff250 » Tue Jan 15, 2013 10:30 pm

They're usually used for trivial one-liners, like if you have a list of dicts that you want sorted by their 'id' key,

Code: Select all

list.sort(key=lambda x: x['id'])
Not everyone likes them, but I think writing a full-blown function to get the 'id' of a dict would be too verbose.
User avatar
Sirius
DBB Master
DBB Master
Posts: 5435
Joined: Fri May 28, 1999 2:01 am
Location: Bellevue, WA
Contact:

Re: [python] Having trouble seeing the need to use lambda, e

Post by Sirius » Thu Jan 24, 2013 4:43 am

I'm not sure how much it differs from Python, but in languages like C++ they can come in pretty handy. It allows you to write callback functions pretty much in-line, sharing much of the context in which they're defined, as opposed to setting up a full function declaration and passing a bunch of variables as parameters, all for something you're only going to use once.

I've also commonly seen them used for generic algorithms; you can have a standard implementation of quicksort, binary search, or what have you, and use it on pretty much anything just by supplying a lambda that defines how to compare two items of an arbitrary type. Again, passing around function pointers would do the same thing, but if it's a one-off, they're a little more heavy-weight than you really need.
Post Reply