tworzenie funkcji

Cześć Jestem nowy w programowaniu funkcjonalnym. Co zrobiłem to

>>> g=lambda x:x*2
>>> f=g
>>> g=lambda x:f(f(x))
>>> g(9)
36

Teraz nie tworzyg jako nieterminująca funkcja rekurencyjna -g(x) jest przekształcany w nową funkcję, która daje wynikg(g(x)).

>>> f=g
>>> g=lambda x:f(f(x))
>>> f(8)
RuntimeError: maximum recursion depth exceeded

oczekiwałemg przekształcić w funkcję, która daje wynikg(g(g(x))), zgodnie z pierwszą definicją g (x). Dlaczego tak nie jest? Czy możliwe jest stworzenie nowej funkcji, która spowodujeg(g(g(...(g(x))....))) dla pewnej liczby iteracji w ten sposób?

questionAnswers(3)

yourAnswerToTheQuestion