buglet in fix() [was "function via source or fix"] (PR#602)
On Wed, 12 Jul 2000 maechler@stat.math.ethz.ch wrote:
"Erin" == Erin Hodgess <hodgess@uhddx01.dt.uh.edu> writes:
Erin> Suppose I create a function, x.e, via the fix command:
(ESS users ESS don't ever do this, but still ...)
>> x.e <- fix(x.e)
Erin> When I type in x.e, the function code appears, along
Erin> with the name/number of the environment.
Ok, in the above it was important that there's no *existing* object x.e
beforehand.
Note that the idea about fix() is that you only have to write
fix(x.e)
But your problem remains :
> fix(newerf)
Waiting for Emacs...Done --- I have options(editor = "emacsclient")
> newerf
function ()
{
## newer
}
<environment: 0x40862004>
> environment(newerf)
<environment: 0x40862004>
> ls(env=environment(newerf))
[1] "subx" "x"
>
I.e. it got the environment of the function fix -- I think this is clearly a bug CC'ed to R-bugs
And the fix is easy: just add environment(x) <- .GlobalEnv in that branch of the if. Now committed to the R-patched branch.
Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- 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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._