[Rd] Warning when calling formals() for `[`.

Laurent Gautier lg@utier @ending from gm@il@com
Sun Oct 7 16:07:24 CEST 2018


Note that having "function" in its class attribute does not make an object
a primitive.
For example:

> class(`[`)
[1] "function"
> is.primitive(`[`)
[1] TRUE
> class(`rnorm`)
[1] "function"
> is.primitive(`rnorm`)
[1] FALSE


Le dim. 7 oct. 2018 à 10:04, Rui Barradas <ruipbarradas using sapo.pt> a écrit :

> Hello,
>
> I don't see why you say that the documentation seems to be wrong:
>
>
> class(args(`+`))
> #[1] "function"
>
>
> args() on a primitive does return a closure. At least in this case it does.
>
>
> Rui Barradas
>
> Às 14:05 de 07/10/2018, Peter Dalgaard escreveu:
> > There is more "fun" afoot here, but I don't recall what the point may be:
> >
> >> args(get("+"))
> > function (e1, e2)
> > NULL
> >> args(get("["))
> > NULL
> >> get("[")
> > .Primitive("[")
> >> get("+")
> > function (e1, e2)  .Primitive("+")
> >
> > The other index operators, "[[", "[<-", "[[<-" are similar
> >
> > The docs are pretty clear that args() on a primitive should yield a
> closure, so at least the documentation seems to be wrong.
> >
> > -pd
> >
> >
> >> On 6 Oct 2018, at 19:26 , Laurent Gautier <lgautier using gmail.com> wrote:
> >>
> >> Hi,
> >>
> >> A short code example showing the warning might the only thing needed
> here:
> >>
> >> ```
> >>> formals(args(`[`))
> >> NULL
> >>
> >> *Warning message:In formals(fun) : argument is not a function*
> >>> is.function(`[`)
> >> [1] TRUE
> >>> is.primitive(`[`)
> >> [1] TRUE
> >> ```
> >>
> >> Now with an other primitive:
> >>
> >> ```
> >>> formals(args(`sum`))
> >> $...
> >>
> >>
> >> $na.rm
> >> [1] FALSE
> >>
> >>> is.function(`sum`)
> >> [1] TRUE
> >>> is.primitive(`sum`)
> >> [1] TRUE
> >>> class(`[`)
> >> [1] "function"
> >> ```
> >>
> >> Is this a feature ?
> >>
> >>
> >> Laurent
> >>
> >>      [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-devel using r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-devel
> >
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list