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 <ruipbarra...@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 <lgaut...@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@r-project.org mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel