

Ask HN: What is the meaning of "Python’s broken notion of lambda"*? - mechnik

* Hal Abelson in http://www.codequarterly.com/2011/hal-abelson/
======
tmhedberg
He may be referring to the fact that lambda expressions in Python are limited
to a single statement. If you want anything more complex than that, you have
to define a function elsewhere and pass it by name.

------
kwantam
Two possible issues. As tmhedberg says (more or less), they're second-class
citizens: they may contain one expression, and cannot contain any statements
(e.g., 'print').

A more important issue: in LISP, ML, and other languages with a "proper"
lambda, the value of a lambda expression is a lexical closure. Python's
lambdas are dynamically scoped, which certainly qualifies as broken.

See, e.g., <http://math.andrej.com/2009/04/09/pythons-lambda-is-broken/>

------
mechnik
Thank you for explaining this.

