【发布时间】:2011-05-26 22:54:53
【问题描述】:
我遇到以下问题:编写递归函数重复应用,将函数作为参数 一个参数的 f 和一个正整数 n。重复应用的结果是一个参数的函数,该函数将 f 应用于该参数 n 次。
所以,例如,我们会有
重复应用(λ x:x+1,10)(100)==> 110您可以假设已经定义了以下函数。您不必使用它,但它可以为一个漂亮的解决方案做出贡献。
定义组成(f,g): 返回 lambda x: f(g(x))到目前为止,我已经写了这个
def compose(f,g):
return lambda x: f(g(x))
def recApply(f,n):
for i in range(n):
return recApply(compose(f,f), n-1)
return f
我在某个地方出错了,因为使用上面的示例 recApply(lambda x: x+1,10)(100) 我得到 1124。
帮助非常感谢
【问题讨论】:
-
您最终添加了
1024而不是10。想想你为什么拥有2的力量。