ジェネレータ版

イテレータ版も書こうと思ったんですがまだよく理解していないのでまた今度にします。そのかわり、Pythonにはわたしでも簡単に書けるジェネレータがあるんです。これはPythonの面白いところのひとつだと思います。

call/ccはよくわからないけど、似たようなものなのかな。

def fib4():
    a, b = 1, 1
    while 1:
        yield a
        a, b = b, a + b

実行

>>> f = fib4()
>>> f.next()
1
>>> f.next()
1
>>> f.next()
2
>>> f.next()
3
>>> f.next()
5
>>> for x in fib4():
	print x,

	
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711
 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578
 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296
...