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

Reply via email to