-1
我想創建一個R函數,它返回一個函數列表,每個函數在列表的不同部分上運行。但是,由於R對範圍的規定,這似乎是不可能的。這裏有一個例子:R中的lambdas列表
functiontest = function() {
foo = list()
for(i in 1:3) {
fixer = function(s) { return(
function() {
return(s)
}
)}
foo[[i]] = fixer(i)
}
return(foo)
}
functiontest()[[2]]() #returns 3
即使殺死了名爲拉姆達「固定器」,並使用立即功能不救我:
functiontest = function() {
foo = list()
for(i in 1:3) {
foo[[i]]=(function(s) { return(
function() {
return(s)
}
)})(i)
}
return(foo)
}
functiontest()[[2]]() #returns 3
我想這回2.如何重構這個代碼,以便這會發生?
謝謝。