function while true - list function?
Steven D. Majewski
sdm7g at Virginia.EDU
Tue Jul 24 18:28:28 CEST 2001
An alternative to the generator class method:
Also in 2.2, the 'iter' function has two forms:
iter( collection ) &
iter( callable, sentinel )
The second form takes a callable object of no args and a sentinal
value, and returns an iterator that calls the function until it
returns the sentinel value.
>>> i = iter( [1,2,3,None,4,5,6] )
>>> j = iter( i.next, None )
>>> for x in j: print x
So, if you can curry your function into one that takes no args
( with lambda or by turning it into a class method that keeps
state ) or if that's what you've already got, you can just
use 'iter( function, None )' .
If you need to force eager evaluation of the iterator you
can use: [ x for x in iter( function, None ) ]
-- Steve Majewski
More information about the Python-list