Funktionsherstellung

Hallo, ich bin neu in der funktionalen Programmierung. Was ich getan habe ist

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

Jetzt schafft es nichtg als nicht abschließende rekursive Funktion -g(x) wird in eine neue Funktion umgewandelt, die das Ergebnis liefertg(g(x)).

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

Ich erwarteteg in eine Funktion umgewandelt werden, die das Ergebnis gibtg(g(g(x)))nach der ersten Definition von g (x). Warum geht das nicht? Ist es möglich, eine neue Funktion zu erstellen, die zur Folge hat?g(g(g(...(g(x))....))) für eine bestimmte Anzahl von Iterationen auf diese Weise?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage