[R] assign / environment side effect on R 2.4.0
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Jun 26 13:00:39 CEST 2006
Please do study the posting guide, as there is no `R 2.4.0'.
This seems to be related to the NEWS item
o [[ on a list does not duplicate the extracted element unless
necessary. (It did not duplicate in other cases, e.g. a
pairlist.)
Now in so far as I can follow it, in your example [[ behaves in the same
way as $ always did (which is what informed people would expect).
R-help is not the place to discuss unreleased versions of R, nor for
questions about code development. (Did I mention studying the posting
guide?)
On Fri, 23 Jun 2006, Thomas Petzoldt wrote:
> 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)
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list