Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is extremely heavyweight syntax for something I like to use as a lightweight construct. If I wanted a function, I would make something a function.


x = lambda y: <code goes here>

def x(y): <code goes here>

What's so heavyweight? A new line and a tab?


IMO lambdas are useful because they reduce mental overhead by allowing the developer not to give names to trivial functions [1]. Compare these two equivalent pieces of code:

    youngest_person = min(people, key=lambda x: x.age)

    def get_age(x):
        return x.age
    youngest_person = min(people, key=get_age)
This may not seem like a huge difference, but using lambdas scales better.

[1] Incidentally, this is the same reason why I don't miss multi-line lambdas (in Python): multi-line functions are seldom trivial.


Yeah in the context of multi line functions the overhead is

A new line A tab A return

This does not sound heavyweight to me (in that context). In the context of a single line function I see the utility of lambdas.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: