python - 如何重复一个函数n次

标签 python higher-order-functions

我正在尝试用 python 编写一个函数,如下所示:

def repeated(f, n):
    ...

其中 f 是一个接受一个参数的函数,n 是一个正整数。

例如,如果我将正方形定义为:

def square(x):
    return x * x

我打电话

repeated(square, 2)(3)

这将是 3、2 的平方。

最佳答案

应该这样做:

 def repeated(f, n):
     def rfun(p):
         return reduce(lambda x, _: f(x), xrange(n), p)
     return rfun

 def square(x):
     print "square(%d)" % x
     return x * x

 print repeated(square, 5)(3)

输出:

 square(3)
 square(9)
 square(81)
 square(6561)
 square(43046721)
 1853020188851841

lambda-less?

def repeated(f, n):
    def rfun(p):
        acc = p
        for _ in xrange(n):
            acc = f(acc)
        return acc
    return rfun

关于python - 如何重复一个函数n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359828/

相关文章:

kotlin - 如何在 Kotlin 中使用 GROUP BY 进行 COUNT(*)?

python - 使用 matplotlib 的结果不一致

python - 如何在 Python 中将大量变量传入和传出函数?

python - 当我们只向 kmeans 提供单个单词的 tfidf 向量时,kmeans 如何知道如何对文档进行聚类?

clojure - 如何在 Clojure 中指定高阶函数参数?

haskell - 常见的递归模式

python - 如何使用 newspaper3k 重读网站上的新闻

python - 卷积算法的简单实现

JavaScript:接受除法函数作为另一个返回新函数的函数的参数 --> 返回商

scala - 输入隐式的同义词?