嗨,我是函数式编程的新手。我所做的是
>>> g=lambda x:x*2
>>> f=g
>>> g=lambda x:f(f(x))
>>> g(9)
36
现在,它不是g
作为非终止递归函数创建的 -g(x)
被转换为一个新函数,它给出了 result g(g(x))
。
>>> f=g
>>> g=lambda x:f(f(x))
>>> f(8)
RuntimeError: maximum recursion depth exceeded
根据 g(x) 的第一个定义,我希望g
被转换成一个给出结果的函数。g(g(g(x)))
为什么不呢?是否有可能以这种方式创建一个导致g(g(g(...(g(x))....)))
一定次数迭代的新函数?