[Rd] Changed behaviour when passing a function?

Gabriel Becker gmbecker at ucdavis.edu
Thu Oct 22 23:08:37 CEST 2015


Joris,


When a function call (detected via the parenthesis) R does the equivalent
of get(..., mode="function") to resolve the symbol.

> round = 2
> round(5.3)
[1] 5
> get("round")
[1] 2
> get("round", mode = "function")
function (x, digits = 0)  .Primitive("round")


It's done this for a while, but didn't always do it, I think. I don't know
when the change happened.

Best,
~G


On Thu, Oct 22, 2015 at 10:59 AM, Joris Meys <jorismeys at gmail.com> wrote:

> Hi all,
>
> When teaching this year's class, I was quite amazed that one of my examples
> didn't work any longer. I wanted to illustrate the importance of
> match.fun() with following code:
>
> myfun <- function(x, FUN, ...){
>     FUN(x, ...)
> }
> round <- 2
> myfun(0.85, FUN = round, digits=1)
>
> I expected to see an error, but this code doesn't generate one. It seems as
> if in the current R version match.fun() is added automatically.
>
> I've scrolled through the complete R News section specifying all the
> changes and bug fixes, starting from 3.0.0.  I couldn't find anything on
> that change in behaviour though. Where can I find more information on what
> changed exactly?
>
> Thanks
> Cheers
> Joris
>
> --
> Joris Meys
> Statistical consultant
>
> Ghent University
> Faculty of Bioscience Engineering
> Department of Mathematical Modelling, Statistics and Bio-Informatics
>
> tel :  +32 (0)9 264 61 79
> Joris.Meys at Ugent.be
> -------------------------------
> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Gabriel Becker, PhD
Associate Scientist (Bioinformatics)
Genentech Research

	[[alternative HTML version deleted]]



More information about the R-devel mailing list