Применение повторяющейся функции

У меня возникли проблемы с вопросом, который следует ниже: Повторно напишите рекурсивную функцию Применить, которая принимает в качестве аргументов функцию f одного аргумента и положительного целого числа n. Результат повторного использования - это функция одного аргумента, которая применяет f к этому аргументу n раз.

Так, например, у нас было бы

repeatedlyApply(lambda x: x+1,10)(100) ==> 110

Вы можете предположить, что была определена следующая функция. Вам не обязательно его использовать, но он может способствовать хорошему решению.

def compose(f,g):
    return lambda x: f(g(x))

Пока что я написал это

def compose(f,g):
    return lambda x: f(g(x))

def recApply(f,n):
    for i in range(n):
        return recApply(compose(f,f), n-1)
    return f

Я где-то ошибаюсь, потому что, используя приведенный выше пример recApply (lambda x: x + 1,10) (100), я получаю 1124.

Помощь очень ценится

5
задан Benji 26 May 2011 в 08:20
поделиться