誰かが以下のスニペットがどうして動くのか説明してもらえますか?文字列を返す関数のリストを構築する
l <- list()
AddFn <- function(str) { l[[length(l) + 1]] <<- function() { return(str) }}
AddFn("hello")
AddFn("there")
l[[1]]() # Returns "hello" as expected
l[[2]]() # Returns "there" as expected
for (letter in letters) AddFn(letter)
l[[3]]() # Returns "z"
私はl[[3]]()
が "a"を返すと予想しました。私は何が欠けていますか?私のAddFn関数は正確に何をしますか?
は、事前に
エイドリアン
+1私の脳を傷つける機能を書くため。 – joran