Ron Adam wrote: > Christopher Subich wrote: > >> As others have mentioned, this looks too much like a list >> comprehension to be elegant, which also rules out () and {}... but I >> really do like the infix syntax. > > > Why would it rule out ()?
Generator expressions. Mind you, Py3k might want to unify generators and lists in some way anyway, freeing up (). :) > > You need to put a lambda express in ()'s anyways if you want to use it > right away. > > print (lambda x,y:x+y)(1,2) Although print <x+y with (x,y)>(1,2) has natural grouping: the lambda itself is effectively a single token. I also like the infix style reminiscent of Python's existing comprehensions. Hell, call it a 'function comprehension' or 'expression comprehension,' and we can pretend we invented the damn thing. > My choice: > > name = (let x,y return x+y) # easy for beginners to understand > value = name(a,b) > > value = (let x,y return x+y)(a,b) And a zero-argument lambda is (aside from really arcane)? (let return 2)? > I think the association of (lambda) to [list_comp] is a nice > distinction. Maybe a {dictionary_comp} would make it a complete set. ;-) Yeah, dictionary comprehensions would be an interesting feature. :) Syntax might be a bit unwieldy, though, and I doubt they'd be used often enough to be worth implementing, but still neat. -- http://mail.python.org/mailman/listinfo/python-list