在以下R代码中,如果我注释掉print(i)
行,则结果为
3
3
3
但是使用print
,结果是
1
2
3
我不知道为什么?打印如何影响结果?谢谢!
f <- vector('list',3)
# set the i'th function to return i
for(i in 1:length(f)) {
f[[i]] <- (function(i){
# STRANGE HERE!
print(i)
function(){i}
})(i)
}
# apply the functions using a different loop variable
for(j in 1:length(f)) {
print(f[[j]]())
}