Bengt Richter wrote: >>1) Replace lambda args: value with >> >> args -> value >> >>or something equivalently concise, or >> > Yet another bike shed color chip: > > !(args:expr) # <==> lambda args:expr > and > !(args::suite) # <==> (lambda args::suite)
Please drop it. Guido pronounced on it, it is _not_ going to change, and the introduction of new punctuation is clearly not improving anything. > (where the latter lambda form requires outer enclosing parens) But either > "::" form > allows full def suite, with indentation for multilines having left edge of > single indent > defined by first line following the "::"-containing line, and explicit > returns for values > required and top suite ending on closing outer paren) > > Probable uses for the "::" form would be for short inline suite definitions > !(x::print x) # <==> (lambda x::print x) & etc. similarly Use sys.stdout.write. > !(::global_counter+=1;return global_counter) > !(::raise StopIteration)() # more honest than iter([]).next() Use a function. > but the flexibility would be there for an in-context definition, e.g., > > sorted(seq, key= !(x:: > try: return abs(x) > except TypeError: return 0)) Bah! I can't parse this. In "!(x::" there's clearly too much noise. Georg _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com