[Python-Dev] accumulator display syntax

Alex Martelli aleaxit at yahoo.com
Thu Oct 16 05:14:31 EDT 2003


On Thursday 16 October 2003 07:16 am, Greg Ewing wrote:
> "Phillip J. Eby" <pje at telecommunity.com>:
> > IMO, it would really be better to have some kind of generator
> > comprehension
> >
> > Top(10, [yield humor(joke),joke for joke in jokes])
>
> I like the *idea* of a generator comprehension, but I'm
> not sure I like the [yield ...] syntax. It's a bit
> idiomatic looking -- the [] still imply a list, even
> though it's not building a list at all.
>
> Maybe there should be a different kind of bracketing,
> e.g.
>
>   <humor(joke),joke for joke in jokes>

I think we could extend indexing to mean something different when
the [ ] contain a 'for', just like we extended list display to mean
something different (list comprehension) when the [ ] contain a
'for'.  Syntax such as:

    Top(10)[ humor(joke) for joke in jokes ]

does not suggest a list is _returned_, just like foo[23] doesn't.

And I have an idea on semantics (which I intend to post separately)
which might let accumulator display syntax work for both "iterator
comprehensions" AND "return of ordinary non-iterator" results.


Alex




More information about the Python-Dev mailing list