ребята, как мне сделать так, чтобы вызов make_repeater (square, 0) (5) возвращал 5 вместо 25? Я предполагаю, что мне нужно изменить строку "function_successor = h", потому что тогда я просто получаю квадрат (5), но не уверен, что мне нужно изменить его на ...
square = lambda x: x * x
def compose1(h, g):
"""Return a function f, such that f(x) = h(g(x))."""
def f(x):
return h(g(x))
return f
def make_repeater(h, n):
iterations = 1
function_successor = h
while iterations < n:
function_successor = compose1(h, function_successor)
iterations += 1
return function_successor
это должен удовлетворять ряду других требований, таких как:
make_repeater (квадрат, 2) (5) = квадрат (квадрат (5)) = 625
make_repeater (квадрат, 4) (5) = квадрат (квадрат (квадрат (квадрат) (5)))) = 152587890625