Steve R. Hastings wrote: > 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.
<g> Hopefully it can be a big issue and still not justify a flame war. Mileages will always vary, but one reason for lambda is precisely not to have to stop, go make a new function for this one very specific use, come back and use it as the one lambda statement, or in C have an address to pass. but, hey, what are editors for? :) the bigger issue is the ability of a lambda to close over arbitrary lexically visible variables. this is something the separate function cannot see, so one has to have a function parameter for everything. but is such lexical scoping even on the table when Ptyhon's lambda comes up for periodic review? > 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. Oh, no, this is just front porch rocking chair BS. But as an enthuiastic developer I am sensitive to how design choices express themselves in ways unanticipated. Did the neat idea of indentation-sensitivity doom pythonistas to a life without the sour grapes of lambda? If so, Xah's critique missed that issue and was unfair to GvR in ascribing his resistance to multi-statement lamda to mere BDFLism. kenny -- Cells: http://common-lisp.net/project/cells/ "Have you ever been in a relationship?" Attorney for Mary Winkler, confessed killer of her minister husband, when asked if the couple had marital problems. -- http://mail.python.org/mailman/listinfo/python-list