В следующем коде 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]]())
}