[R] assign / environment side effect on R 2.4.0
Thomas Petzoldt
thpe at hhbio.wasser.tu-dresden.de
Fri Jun 23 17:35:42 CEST 2006
Sorry,
the posted example had the side effect on all platforms (correctly: R
2.2.1/Windows, 2.3.1/Linux, 2.4.0/Windows), but in the following
corrected example the behavior of 2.4.0 differs from the older versions.
The only difference between the "wrong" and the "new" example is
L[["test"]] vs. L$test in the assign.
Thomas P.
envfun <- function(L) {
# L <- as.list(unlist(L))
p <- parent.frame()
assign("test", L[["test"]], p) ## [["test"]] instead of $test
environment(p[["test"]]) <- p
}
solver <- function(L) {
envfun(L)
# some other stuff
}
L <- list(test = function() 1 + 2)
e1 <- environment(L$test)
solver(L)
e2 <- environment(L$test)
print(e1)
print(e2)
More information about the R-help
mailing list