[Python-ideas] Statements vs Expressions... why?
Cliff Wells
cliff at develix.com
Fri Sep 12 03:19:31 CEST 2008
On Fri, 2008-09-12 at 00:10 +0200, Mathias Panzenböck wrote:
> The only thing I'd like would be anonymous classes (like in java) and anonymous
> functions:
> I don't think anything else concerning statement as expression is in any way
> necessary or handy.
At one time I also perceived a shortcoming in lambda. You could
continue to see it this way, or you could see it (like I now do) that
it's not lambda that's limited (it effectively allows an arbitrary
number of expressions), but rather the fact that a statement cannot be
be used as an expression.
For instance, the following is currently legal in Python:
lambda x, y: (
x + y,
x**2,
y**2
)
But this is not:
lambda x, y: (
if x > y: x
else: y
)
Whether or not it's illegal is due to lambda being limited or because
statements are castrated expressions is all a matter of your point of
view. Extending lambda to allow statements would certainly fix
*lambda*, but making statements into expressions fixes Python (IMHO, of
course).
Regards,
Cliff
More information about the Python-ideas
mailing list