A friendlier, sugarier lambda -- a proposal for Ruby-like blocks in python

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Sat Oct 14 10:25:09 CEST 2006

In <1160808124.455062.319660 at m7g2000cwm.googlegroups.com>, Kay Schluehr

> brenocon at gmail.com wrote:
>> Many have complained about this crippled-ness of lambda, but it
>> actually makes some sense.  Since Python uses colons and indentation to
>> define blocks of code, it would be awkward to close a multiline lambda.
>>  The best I could think of would look like
>>     deferred.addCallback(lambda r:
>>         print("fancy formatting %s" % r.text)
>>     )
>>     ^
>>     |
>> That trailing paranthesis is WAY un-Pythonic.
> Maybe it is not common place because some users are underinformed and
> hypnotized by whitespace semantics but you can add a trailing backslash
> to achieve line coninuation within a single expression:
>>>> deferred.addCallback(lambda r:  puts("fancy formatting %s" \
> ... 	))
> This works syntactically.

It works just fine without the trailing backslash.  A "logical line" does
not end until all opened parenthesis and brackets are matched by their
closing counterpart.

	Marc 'BlackJack' Rintsch

More information about the Python-list mailing list