我有一个功能说,
inc <- function(t) {
f <- 1
t + f
}
Run Code Online (Sandbox Code Playgroud)
因此,第一次调用函数inc时,f将会是1,但是下次调用它时f应该是值,2并且当inc第3次调用函数f值时应该3等等......
我怎么在R?
我经常使用这个.我不知道这是一招还是黑客攻击:
getF <- function(){
x <- 1
function(t){
x <<- t + x
}
}
f <- getF()
Run Code Online (Sandbox Code Playgroud)
f是一个函数(返回值getF),它的封闭环境不是全局环境,而是f定义的环境.看看environment(f).<<-分配x到那个环境:看到ls(environment(f))和get("x", environment(f)).
print(f(3))#4
print(f(4))#8
Run Code Online (Sandbox Code Playgroud)