[Python-Dev] Re: accumulator display syntax
Paul Moore
pf_moore at yahoo.co.uk
Fri Oct 17 16:34:21 EDT 2003
More information about the Python-Dev mailing list
Fri Oct 17 16:34:21 EDT 2003
- Previous message: [Python-Dev] accumulator display syntax
- Next message: [Python-Dev] Re: accumulator display syntax
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Phillip J. Eby" <pje at telecommunity.com> writes: > At 10:15 AM 10/17/03 -0700, Guido van Rossum wrote: >>Which is why I didn't like the 'sum[x for x in S]' notation much. >>Let's look for an in-line generator notation instead. I like >> >> sum((yield x for x in S)) >> >>but perhaps we can make this work: >> >> sum(x for x in S) I like the look of this. In this context, it looks very natural. > Offhand, it seems like the grammar might be rather tricky, but it > actually does seem more Pythonic than the "yield" syntax, and it > retroactively makes listcomps shorthand for 'list(x for x in s)'. > However, if gencomps use this syntax, then what does: > > for x in y*2 for y in z if y<20: > ... > > mean? ;) It means you're trying to be too clever, and should use parentheses :-) > It's a little clearer with parentheses, of course, so perhaps they > should be required: > > for x in (y*2 for y in z if y<20): > ... I'd rather not require parentheses in general. Guido's example of sum(x for x in S) looks too nice for me to want to give it up without a fight. But I'm happy to have cases where the syntax is ambiguous, or even out-and-out unparseable, without the parentheses. Whether it's possible to express this in a way that Python's grammar can deal with, I don't know. Paul. -- This signature intentionally left blank
- Previous message: [Python-Dev] accumulator display syntax
- Next message: [Python-Dev] Re: accumulator display syntax
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list