question about generators

Bjorn Pettersen BPettersen at NAREX.com
Wed Aug 14 14:45:28 EDT 2002


> From: Andrew Koenig [mailto:ark at research.att.com] 

[snip turning a function into a generator]
                 
> So... my question is this:  Is there a cleaner general way of 
> making this kind of program transformation? Obviously, replacing
> 
>         for i in f():
>                 yield i
> 
> by
> 
>         yield f()
> 
> won't work -- nor should it, because the compiler doesn't 
> know that I might not be intending to write a generator that 
> yields a sequence of genrators.

I've noticed a similar problem, ie. all my generators are recursive and
I have to do the for-loop dance, and yes it had me flumoxed the first
time too.

It seems like this is a common enough idiom that it could warrant
special syntax(?) Coming from a C++ background (but having also
programmed in Python for the last five years) something like

  yield << f()

would seem natural, and also symetric to print >> ;->

-- bjorn




More information about the Python-list mailing list