Re: [Rd] The default behaviour of a missing entry in an environment

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Fri, 13 Nov 2009 19:55:22 -0500

On 13/11/2009 7:26 PM, Gabor Grothendieck wrote:

> On Fri, Nov 13, 2009 at 7:21 PM, Duncan Murdoch <murdoch_at_stats.uwo.ca> wrote:

>> On 13/11/2009 6:39 PM, Gabor Grothendieck wrote:
>>> Note that one should use inherits = FALSE argument on get and exists
>>> to avoid returning objects from the parent, the parent of the parent,
>>> etc.
>> I disagree. Normally you would want to receive those objects. If you
>> didn't, why didn't you set the parent of the environment to emptyenv() when
>> you created it?
>>
> 
> $ does not look into the parent so if you are trying to get those
> semantics you must use inherits = FALSE.

Whoops, yes. That's another complaint about $ on environments.

Duncan Murdoch

> 

>> x <- 3
>> e <- new.env()
>> "x" %in% names(e)
> [1] FALSE

>> get("x", e) # oops
> [1] 3

R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat 14 Nov 2009 - 00:58:59 GMT

This archive was generated by hypermail 2.2.0 : Mon 16 Nov 2009 - 17:30:25 GMT