-, :
if n == 1:
return fn
, repeat(fn, 1) - , fn - fn.
, n == 1, , n - 1 .
, repeat(fn, n) repeat(fn, n-1)? , :
repeat(fn, 3)(x): fn(fn(fn(x)))
repeat(fn, 2)(x): fn(fn(x))
: repeat(fn, n) - , fn(repeat(fn, n-1)), ? :
else:
def new_fn(x):
return fn(repeat(fn, n-1)(x))
return new_fn
, , partial :
def repeat3(fn, n, x):
if n == 1:
return fn(x)
else:
return fn(repeat3(fn, n-1, x))
def repeat(fn, n):
return functools.partial(repeat3, fn, n)