iterated()
Create a function that applies func n times to a value.
Implementation
Args: func: The function to iterate Returns: A function that takes (value, n) and applies func n times
Example
double = lambda x: x * 2
repeated_double = iterated(double)
repeated_double(2, 3) # 2 -> 4 -> 8 -> 16
Expected output: 16
Source Code
def iterated(func: Callable) -> Callable:
_validate_callable(func)
def iterator(value, n=1):
result = value
for _ in range(max(0, n)):
result = func(result)
return result
return _copy_function_metadata(iterator, func)