伯恩斯' R-Inferno p98拼图?

时间:2014-07-29 19:51:28

标签: r

第98页:http://www.burns-stat.com/pages/Tutor/R_inferno.pdf

转载如下。如果以下是有效命令。

WeirdFun()()()

然后WeirdFun会返回什么?

n = 0
weirdFun = function(x) {
  n <<- n + 1
  return(weirdFun)
}
weirdFun()
weirdFun()()
weirdFun()()()
weirdFun()()()()

1 个答案:

答案 0 :(得分:3)

像@digEmAll说的那样,它只返回函数体。这是一个例子......

weirdFun <- function() function() function() return(42)

weirdFun
#function() function() function() return(42)

weirdFun()
#function() function() return(42)
#<environment: 0x7f8cc7130390>

weirdFun()()()
#[1] 42

认为这个难题的目的是让你考虑闭包和封闭的环境?