Steven Bethard <[EMAIL PROTECTED]> writes: > Simo Melenius wrote: > > map (def x: > > if foo (x): > > return baz_1 (x) > > elif bar (x): > > return baz_2 (x) > > else: > > global hab > > hab.append (x) > > return baz_3 (hab), > > [1,2,3,4,5,6]) > > I think this would probably have to be written as: ... > return baz_3(hab) > , [1,2,3,4,5,6]) > or: ... > return baz_3(hab) > , > [1,2,3,4,5,6]) > > Note the placement of the comma. As it is, > return baz_3(hab), > returns the tuple containing the result of calling baz_3(hab):
That one didn't occur to me; creating a one-item tuple with (foo,) has been odd enough for me: only few times I've seen also the parentheses omitted. I did ponder the unambiguousness of the last line, though. One could suggest a new keyword like "end", but keyword bloat is bad. (Of course, if we trade the "lambda" keyword for another, new keyword we're not exactly _adding_ keywords... :)) > It's not horrible to have to put the comma on the next line, but it > isn't as pretty as your version that doesn't. Unfortunately, I don't > think anyone's gonna want to revise the return statement syntax just > to introduce anonymous functions. There might not be a return statement: the anonymous function might conditionally return earlier and have side-effects at the end of the block (to implicitly return None). So the block-ending would need to fit after any statement and be strictly unambiguous. br, S -- http://mail.python.org/mailman/listinfo/python-list