R と Javascript の具体的な違いは何ですか。つまり、次の 2 つの非常によく似た例では、最初の無名関数のパラメーターの値を「修正」するために R バージョンに追加の行が必要です。
それは、R が強制されるまで評価を延期するためでしょうか (Lisp がそうしているように)、Javascript はできるだけ早く評価しますか? それとも、私はここで間違った行にいますか?
R版
test <- list()
for (i in 1:10) {
test[[i]] <- (function(index) {
index <- index # why does R need this line when Javascript doesn't
return (function() {
print (index)
})
})(i)
}
test[[5]]()
test[[10]]()
Javascript のバージョン
test = new Array()
for (var i=1; i<=10; i++) {
test[i] = (function(index) {
return function() {
alert(index)
}
})(i)
}
test[5]()
test[10]()