Forces the evaluation of a function argument.
force(x)
a formal argument of the enclosing function.
force
forces the evaluation of a formal argument. This can
be useful if the argument will be captured in a closure by the lexical
scoping rules and will later be altered by an explicit assignment or
an implicit assignment in a loop or an apply function.
# NOT RUN { f <- function(y) function() y lf <- vector("list", 5) for (i in seq_along(lf)) lf[[i]] <- f(i) lf[[1]]() # returns 5 g <- function(y) { force(y); function() y } lg <- vector("list", 5) for (i in seq_along(lg)) lg[[i]] <- g(i) lg[[1]]() # returns 1 ## This is identical to g <- function(y) { y; function() y } # }