Erik Bernoth wrote:
Hi List,
look at the following code:
def evens():
# iterator returning even numbers
i = 0
while True:
yield i
i += 2
# now get all the even numbers up to 15
L = [n for n in evens() if n < 15]
Isn't it strange, that this code runs (in a lazy language) for eternity?
I would expect python to to spit out (in no time):
>> L
[0, 2, 4, 6, 8, 10, 12, 14]
after 14 it is not nessesary to evaluate evens() any further.
It's equivalent to:
L = []
for n in evens():
if n < 15
L.append(n)
--
http://mail.python.org/mailman/listinfo/python-list