I would like to create a vector of functions using a two agruments function 'func', for instance this one:
func = function(number, coefficient) {
return(coefficient*number)
}
here is how I create the vector of functions:
vector_of_functions = NULL
for (i in 1:4) {
vector_of_functions = c(vector_of_functions,
function(number) func(number=number, coefficient=i))
}
My issue is that all functions that compose my vector are the same, even if they have been created using different i
through the loop. It seams that they are evaluated using the last value of i
(which is a global variable here).
Does anybody have an idea?
Use a factory function with a closure over its argument (which will hold the value of the looping variable):