Meta: PEP discussion (was Re: PEP 255: Simple Generators)
Tim Peters
tim.one at home.com
Thu Jun 28 00:12:41 EDT 2001
[Greg Ewing]
> To behave totally like Icon, it would be necessary
> that given
>
> def f():
> return 3 + g()
>
> where g is a generator, and f is called in an iteration
> context, then f would be a generator too.
Actually not! "return" does not supply a generative context in Icon, so
return 3 + g()
produces at most one result regardless of the context f() was called from
and regardless of whether g "wants to" generate more than one result. The
rules in Icon get subtle when crossing expression boundaries. You need
suspend 3 + g()
here instead to make that particular point stick; but then that's like the
PEP 255 example
def f():
for x in g():
yield 3 + x
and then f is indeed a generator.
> But then you would have turned Python into Icon. :-)
Well, except for the really *interesting* parts <wink>.
BTW, did you get your Windows install to work??? If so, what was the
problem?
More information about the Python-list
mailing list