[Rd] Cautionary tale about c (PR#695)

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
13 Oct 2000 17:34:07 +0200

J.C.Rougier@durham.ac.uk writes:

> This situation arose in a computer practical this morning.  A
> student overwrote "c" with a function.  This messes up lots of
> things, but it is difficult to remove the function "c" from the
> global environment because it is used as a function in both "rm"
> and "remove".  [The solution was to reassign "c" as a number, and
> then remove it.]  Would it be reasonable in "rm" and "remove" to
> insist that the "c" function is got from the base?  The same
> might apply to ".Internal" and "as.character", which are also
> used.

Hmm. This would seem to be doable by having line 2 of rm() as

get("c","package:base")(list, names)

You do have to be circumspect: there are calls to match(),
as.character(), and pos.to.env() in that construction, but neither
uses c().
Currently, get("c", envir=NULL) also works, but (for other reasons)
I'm on the warpath against using NULL for the base environment.

   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch