On Thu, 09 Feb 2006 16:41:10 +1300, Greg Ewing <[EMAIL PROTECTED]> wrote:
>My thought on lambda at the moment is that it's too VERBOSE. > >If a syntax for anonymous functions is to pull its weight, >it needs to be *very* concise. The only time I ever consider >writing a function definition in-line is when the body is >extremely short, otherwise it's clearer to use a def instead. > >Given that, I do *not* have the space to waste with 6 or 7 >characters of geeky noise-word. OTOH, it does stand out as a flag to indicate what is being done. > >So my vote for Py3k is to either > >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) (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 !(::global_counter+=1;return global_counter) !(::raise StopIteration)() # more honest than iter([]).next() 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)) and closures could be spelled !(c0,c1:!(x:c0+c1*x))(3,5) # single use with constants is silly spelling of !(x:3+5*x) Hm, are the latter two really better for eliminating "lambda"? Cf: sorted(seq, key=(lambda x:: try:return abs(x) except TypeError: return 0)) and (lambda c1,c2:lambda x:c0+c1*x)(3,5) # also silly with constants I'm not sure. I think I kind of like lambda args:expr and (lambda args::suite) but sometimes super-concise is nice ;-) >2) Remove lambda entirely. > -1 Regards, Bengt Richter _______________________________________________ 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