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?