Skip to content
Prev 6072 / 63468 Next

is.environment, as.environment, and NULL

The r-devel (1.4) code has C implementations now of the class and
class<- functions in package methods, and also of as.environment.

The last brings up a question (it shows up in the isas-tests test
suite).

as.environment(NULL) is NULL.  Seems like it has to be, since NULL is
the environment associated with package:base.

But is.environment(NULL) is FALSE, which is also fairly natural, if we
think of testing the type of the argument.

The inconsistency causes a related test in isas-tests.R to produce a
FALSE (where generally they should either evaluate to TRUE or generate
an error).

Looking at the uses of is.environment in the R source itself, most of
them seem to hedge their bets on whether is.environment(NULL) is TRUE or
FALSE.

There isn't a completely consistent solution, given the use of NULL as
an environment.  For the moment it seemed best to live with that one
anomalous result in the tests.

John