小编Dav*_*vid的帖子

使用R中的循环创建函数列表

函数式编程的介绍中,作者Hadley Wickham创建了以下函数工厂:

power <- function(exponent) {
  function(x) {
    x ^ exponent
 }
}
Run Code Online (Sandbox Code Playgroud)

然后他展示了如何使用此函数来定义其他函数,例如

square <- power(2)
cube <- power(3)
Run Code Online (Sandbox Code Playgroud)

现在假设我想通过以下循环同时创建这些函数:

ftns <- lapply(2:3, power)
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,因为3被分配给列表的所有条目的指数:

as.list(environment(ftns[[1]]))

$exponent
[1] 3
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这段代码有什么问题吗?

谢谢!

loops functional-programming r

9
推荐指数
1
解决办法
954
查看次数

标签 统计

functional-programming ×1

loops ×1

r ×1