29 lines
642 B
Python
29 lines
642 B
Python
def make_generator(f):
|
|
n = 1
|
|
while True:
|
|
yield f(n)
|
|
n += 1
|
|
|
|
|
|
def fibonacci(n):
|
|
if n <= 1:
|
|
return n
|
|
return fibonacci(n-1) + fibonacci(n-2)
|
|
|
|
if __name__ == "__main__":
|
|
# a
|
|
print("fibonacci 10 next terms")
|
|
fib_generator = make_generator(fibonacci)
|
|
for x in range(10):
|
|
print(next(fib_generator))
|
|
# b
|
|
print("square generator")
|
|
square_generator = make_generator(lambda x : x**2)
|
|
for x in range(10):
|
|
print(next(square_generator))
|
|
|
|
print("1 generator")
|
|
one_generator = make_generator(lambda x : 1)
|
|
for x in range(10):
|
|
print(next(one_generator))
|