From h.wickham at gmail.com  Thu Jan  9 23:43:44 2014
From: h.wickham at gmail.com (Hadley Wickham)
Date: Thu, 9 Jan 2014 16:43:44 -0600
Subject: [Rd] reference class internals
In-Reply-To: <20140109223322.GB5772@laura>
References: <20140109223322.GB5772@laura>
Message-ID: <CABdHhvGVn4j2osVs-UK2sU1fFa4LyXMB-uDzBwYJWNZ+dNxtoA@mail.gmail.com>

It's a bit of a simplification, reference classes are wrappers around
environments.  So if modifying a value in an environment would create
a copy, then modifying the same value in a reference class will also
create a copy.

The situation with modifying a vector is a bit complicated as it will
sometimes be modified in place and sometimes be duplicated and
modified (depending on whether its NAMED attribute is 1 or 2, and
exactly how you're modifying it).

Hadley

On Thu, Jan 9, 2014 at 4:33 PM, Norm Matloff <matloff at cs.ucdavis.edu> wrote:
> I have a question about reference classes, which someone here
> undoubtedly can answer immediately, saving me hours of wading through
> indecipherable internal code. :-)  Thanks in advance.
>
> Reference class data is mutable, fine, but in what sense?  Is it really
> physical,  or is it just a view given to the programmer?
>
> If for instance I have vector as a field in a reference class, and I
> change one element of the vector, is it really true that the change is
> guaranteed to be made in-place, no copying, no memory reallocation etc?
>
> Norm
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



-- 
http://had.co.nz/



[Rd] reference class internals
Hadley Wickham