[Rd] Warning when calling formals() for `[`.
Peter Dalgaard
pd@lgd @ending from gm@il@com
Sun Oct 7 16:14:40 CEST 2018
> On 7 Oct 2018, at 16:04 , Rui Barradas <ruipbarradas using sapo.pt> wrote:
>
> 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.
But in this case it doesn't:
> is.primitive(get("["))
[1] TRUE
> class(args(get("[")))
[1] "NULL"
Or, for that matter:
> is.primitive(`[`)
[1] TRUE
> class(args(`[`))
[1] "NULL"
-pd
>
>
> 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
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes using cbs.dk Priv: PDalgd using gmail.com
More information about the R-devel
mailing list