重复功能应用

2024-05-21 05:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个问题:编写一个递归函数repeatedlyApply,它将一个函数作为参数 一个自变量和正整数n的f。repeatedlyApply的结果是一个自变量的函数,它将f应用于该自变量n次。

例如,我们可以

repeatedlyApply(lambda x: x+1,10)(100) ==> 110

您可以假设已经定义了以下函数。您不必使用它,但它可以为一个漂亮的解决方案做出贡献。

def compose(f,g):
    return 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。

非常感谢您的帮助


Tags: lambda函数composeinfor参数return定义