【发布时间】:2017-04-19 05:02:21
【问题描述】:
我正在学习 R 编程。我无法理解函数中的函数在 R 中是如何工作的。示例:
f <- function(y) {
function() { y }
}
f()
f(2)()
我不明白为什么 $f() 不起作用并显示以下消息:
function() { y } <environment: 0x0000000015e8d470>
但是当我使用 $f(4)() 时,它会显示答案为 4。 请简要说明您的答案,以便我理解。
【问题讨论】:
-
你定义了内部函数而不调用它或存储它,所以它被返回了;你已经创建了一个函数,该函数可以生成函数。要调用内部函数,请将其括在括号中,并在后面加上一个额外的集合:
f <- function(y) { (function() { y })() }尽管这相当于f <- function(y){y}
标签: r function functional-programming