# Fibonacci Sequence.
# https://en.wikipedia.org/wiki/Fibonacci_sequence
# e.g. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 etc.
# Add the one before.
# It's a good test to see the difference between using a list and generator.
from timeit import timeit
def fib(number):
a = 0
b = 1
for i in range(number):
yield a
temp = a
a = b
b = temp + b
def fib_list(number):
a = 0
b = 1
result = []
for i in range(number):
result.append(a)
temp = a
a = b
b = temp + b
return result
time_taken = timeit(lambda: [fib_list(10)], number=100)
print(f"Time taken: {time_taken}")
time_taken = timeit(lambda: [x for x in fib(100)], number=100)
print(f"Time taken: {time_taken}")