【发布时间】:2015-02-01 05:59:06
【问题描述】:
我一直在尝试实现一个高阶函数,但没有成功 repeat(f, n) 其中 f 是另一个函数,n 是整数值,表示 n 将应用于变量 x 的次数。 例如:
def integer(x):
x + 1
所以我会重复 (integer, 5) 并且我会拥有 integer(integer(integer(integer(integer(x))
【问题讨论】:
-
如果您想了解更多关于高阶函数、函数组合和一般柯里化的知识,那么我建议您看看
functools模块。它有很多好东西:) -
我在扩展任何提议的解决方案以处理多个函数参数时遇到了问题。在传递 3-tupel 而不是 3 个参数后,它起作用了: def _f(_t): return (_t[0]**2+_t[1])%_t[2] def _repeat(_func, _m, _t): for _i在范围内(_m):_t =(_func(_t),_t[1],_t[2])返回_t[0] S = 894488611079900130 A = 1 N =(2**31-1)**2打印( _repeat(_f, 27081, (2, A, N)) == S)
-
可读python:apply_funtion_n_times.py.tx
标签: python higher-order-functions