From matloff at cs.ucdavis.edu  Fri Jan 10 00:20:17 2014
From: matloff at cs.ucdavis.edu (Norm Matloff)
Date: Thu, 9 Jan 2014 15:20:17 -0800
Subject: [Rd] reference class internals
In-Reply-To: <CABdHhvGVn4j2osVs-UK2sU1fFa4LyXMB-uDzBwYJWNZ+dNxtoA@mail.gmail.com>
References: <20140109223322.GB5772@laura>
	<CABdHhvGVn4j2osVs-UK2sU1fFa4LyXMB-uDzBwYJWNZ+dNxtoA@mail.gmail.com>
Message-ID: <20140109232017.GA6114@laura>


Bottom line:  Really no different from the case of ordinary vectors that
are not in reference classes, right?  In other words, not true
pass-by-reference.

Norm

On Thu, Jan 09, 2014 at 04:43:44PM -0600, Hadley Wickham wrote:
> 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
Norm Matloff