Re: [Rd] attributes of environments

From: Thomas Lumley <tlumley_at_u.washington.edu>
Date: Wed 05 Jul 2006 - 16:17:55 GMT

On Wed, 5 Jul 2006, Gabor Grothendieck wrote:

> On 7/5/06, Thomas Lumley <tlumley@u.washington.edu> wrote:
>> On Tue, 4 Jul 2006, Gabor Grothendieck wrote:
>>
>> > In the code below, e is an environment which we copy to f and then
>> > add attributes to e. Now f winds up with the same attributes.
>> >
>> > In other words it seems that the attributes are a property of the
>> > environment itself and not of the variable. Thus it appears we
>> > cannot have two environment variables that correspond to the
>> > original environment but with different attributes.
>>
>> No, we can't. The two variables are references to the same environment, so
>> they are the same.
>>
>> If you want the attributes to be copies rather than references then create
>> a list with the environment as an element and put the attributes on the
>> list.
>
> I realize that that is how it works but what I was really wondering was
> should it work that way?
>

I think it really should (and this question has come up before). If you do

    e<-environment()
    f<-e

then there is only one object that f and e both point to. Now, since such things as S3 class and matrix dimension are implemented as attributes I think you really have to consider the attributes as part of the object [which is also how they are implemented, of course]. So if e and f are the same object they should have the same attributes.

Another reasonable position would be to disallow attributes on environments (as we do with NULL, another reference object), but that seems extreme.

         -thomas



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Thu Jul 06 02:53:19 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 05 Jul 2006 - 18:27:14 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.