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?