小编ceo*_*com的帖子

功能制作

嗨,我是函数式编程的新手.我做的是

>>> g=lambda x:x*2
>>> f=g
>>> g=lambda x:f(f(x))
>>> g(9)
36
Run Code Online (Sandbox Code Playgroud)

现在,它不是g作为一个非终止递归函数创建的- g(x)转换为一个给出结果的新函数g(g(x)).

>>> f=g
>>> g=lambda x:f(f(x))
>>> f(8)
RuntimeError: maximum recursion depth exceeded
Run Code Online (Sandbox Code Playgroud)

根据g(x)的第一个定义,我希望g将其转换为一个给出结果的函数g(g(g(x))).为什么不呢?是否有可能以g(g(g(...(g(x))....)))这种方式创建一个导致一定次数迭代的新函数?

python functional-programming

4
推荐指数
1
解决办法
160
查看次数

标签 统计

functional-programming ×1

python ×1