создание функций
Привет, я новичок в функциональном программировании. Что я сделал, так это
>>> g=lambda x:x*2
>>> f=g
>>> g=lambda x:f(f(x))
>>> g(9)
36
Теперь это не создаетg
как неопределенная рекурсивная функция -g(x)
преобразуется в новую функцию, которая дает результатg(g(x))
.
>>> f=g
>>> g=lambda x:f(f(x))
>>> f(8)
RuntimeError: maximum recursion depth exceeded
Я ожидалg
быть преобразованным в функцию, которая дает результатg(g(g(x)))
согласно первому определению g (x). Почему это не так? Можно ли сделать новую функцию, которая приводит кg(g(g(...(g(x))....)))
за определенное количество итераций таким образом?