Hello,
Inline.
Às 15:07 de 07/10/2018, Laurent Gautier escreveu:
Note that having "function" in its class attribute does not make an
object a primitive.
I did not say it does.
What Peter said is that "args() on a primitive should yield a closure"
and this return value is indeed a closure.
Rui Barradas
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
<mailto: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
<mailto: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 <mailto:R-devel@r-project.org> mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel