On Fri, 05 May 2006 21:16:50 -0400, Ken Tilton wrote: > The upshot of > what he wrote is that it would be really hard to make semantically > meaningful indentation work with lambda.
Pretty much correct. The complete thought was that it would be painful all out of proportion to the benefit. See, you don't need multi-line lambda, because you can do this: def make_adder(x): def adder_func(y): sum = x + y return sum return adder_func add5 = make_adder(5) add7 = make_adder(7) print add5(1) # prints 6 print add5(10) # prints 15 print add7(1) # prints 8 Note that make_adder() doesn't use lambda, and yet it makes a custom function with more than one line. Indented, even. You could also do this: lst = [] # create empty list def f(x): return x + 5 lst.append(f) del(f) # now that the function ref is in the list, clean up temp name print lst[0](1) # prints 6 Is this as convenient as the lambda case? lst.append(lambda x: x + 7) print lst[1](1) # prints 8 No; lambda is a bit more convenient. But this doesn't seem like a very big issue worth a flame war. If GvR says multi-line lambda would make the lexer more complicated and he doesn't think it's worth all the effort, I don't see any need to argue about it. > But the key in the whole thread is simply that indentation will not > scale. Nor will Python. This is a curious statement, given that Python is famous for scaling well. I won't say more, since Alex Martelli already pointed out that Google is doing big things with Python and it seems to scale well for them. -- Steve R. Hastings "Vita est" [EMAIL PROTECTED] http://www.blarg.net/~steveha -- http://mail.python.org/mailman/listinfo/python-list