具有起始值和定义的调用次数的函数的迭代定点调用

时间:2018-01-18 21:44:05

标签: r functional-programming

我想编写一个简单而优雅的函数,在给定一些起始值 x0 的情况下,将给定函数 f 应用于 n 次。 。它不一定是数字函数(例如 dirname )。

这个解决方案解决了这个问题,但看起来太复杂了:

it_call <- function(f, x0, n) Reduce(function(x, y) ifelse(x==1, f(x0), f(x)), 1:(n+1))

示例:

it_call(dirname, "/a/b/c/d/e", 3)

[1] "/a/b"

另一个例子:

i_call(sqrt, 256, 3)

[1] 2

1 个答案:

答案 0 :(得分:1)

这样可行:

it_call <- function(f, x0, n) Reduce(function(x, y) f(x), 1:n, init=x0)

不确定您的“太复杂”的标准是什么。