まずはフィボナッチ数列を返す関数の基本的な実装。
def fib(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
# print fibonacci number 1st to 10th
for i in range(10):
print fib(i)
素朴なやりかたとして皮を一枚かぶせてみる。
def fib(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
def fib2(n=0):
while True:
yield fib(n)
n += 1;
fibonacci = fib2()
# print fibonacci number 1st to 10th
for i in range(10):
print fibonacci.next()
とりあえず当初の目的は達成されたものの、あまり琴線に触れるコードじゃないな。
しかしPythonは書きやすくていいな。