Message-ID: <f8e6ff051002250657o7be15ab9ia24b5be410e80e9c@mail.gmail.com>
Date: 2010-02-25T14:57:54Z
From: Hadley Wickham
Subject: proto and baseenv()
In-Reply-To: <20100225075038.79ca9b63.misc7@emerose.org>
> Presumably if I ask for p$a or p$b later, it's because I'm interesting
> in the value of "p$a" or "p$b" that I specifically put inside that
> environment. ?Otherwise I would just ask for "a" or "b". ?If I'm
> asking for "p$b" it the above case, that means I forgot to declare b
> inside p. ?In this case there should be an error telling me that, not
> a silent substitution of the wrong quantity.
>
> If someone wanted to do the y$ls() thing, they could always
>
>> y <- proto(a=1)
>> with(y, ls())
> [1] "a"
>
> Another reason is that there are plenty of other programming languages
> that have similar structures and this behavior is very odd. ?In
> standard languages asking for "b" inside the "p" object gives you an
> error, and no one complains.
You might want to have a look at the mutatr package which implements
prototype OO with the behaviour you're looking for (I think). I also
have a paper available if you email me off list.
Hadley
--
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/