3 ms·
The major killer feature of scheme-style lambdas is that you don't have to name them. Naming stuff is hard, and you usually get it wrong. If the thing you want
by ElevenLathe 3y ago
The major killer feature of scheme-style lambdas is that you don't have to name them. Naming stuff is hard, and you usually get it wrong. If the thing you want to do is a couple lines of code, and you can just drop it in as a lambda and not have to think of a meaningful name, it's easier to keep flow-state. If things expand to the point where glancing at the code doesn't tell you what the function does, that is the time to break it out into a named function.
- jononor 3y agoJust call it foo. Not a problem.
- knightoffaith 3y agoYou can still do anything you want with just Python lambdas technically speaking right? Like, Python lambdas can express any lambda calculus expression, so as long as you're not writing something with side effects, you can use an arbitrarily complex Python lambda. Though I guess the resulting code wouldn't exactly be Pythonic.
- constantcrying 3y agoLanguage design is really about what you could do, but about how to efficiently express certain things.
- JadeNB 3y ago> Language design is really about what you could do, but about how to efficiently express certain things. That's missing a "not", right (probably after "really")?
- ElevenLathe 3y agoNot the person you're replying to, but I assume they meant "rarely" instead of "really". I make this typo all the time myself!
- JadeNB 3y agoThat makes sense. Thanks!
- powersnail 3y agoDepends on what you mean by "technically". Computationally, python lambda is fully capable of whatever a regular python function can do, including side-effects, (you can call foo.set_bar()). The limit is syntactical: a lambda has to be one single expression. So, no assignment statement, no multiple lines, etc.