From richierocks at gmail.com  Sat Dec 24 00:24:53 2016
From: richierocks at gmail.com (Richard Cotton)
Date: Fri, 23 Dec 2016 18:24:53 -0500
Subject: [Rd] R-ints Argument Evaluation has out of date examples
Message-ID: <CAPp_+=dmK9-jbBcvBFVqGDqWBvxBko2pECVhESP9JwEQE2WJWg@mail.gmail.com>

In R-ints section 1.5

https://cran.r-project.org/doc/manuals/r-devel/R-ints.html#Argument-evaluation

it states

> Note that being a special/builtin is separate from being primitive
> or .Internal: quote is a special primitive, + is a builtin primitive,
> cbind is a special .Internal and grep is a builtin .Internal.

I think that the examples of cbind and grep might be out of date since
these both appear to be closures now.

typeof(cbind)
## "closure"
typeof(grep)
## "closure"

In fact, as far as I can tell, all the special and builtin functions
now use the primitive interface.  The following code returns an empty
list in R 3.3.2:

e <- as.environment("package:base")
vars <- mget(ls(e), e)
Filter(
  function(x) {
    typeof(x) %in% c("special", "builtin") && Negate(is.primitive)(x)
  },
  vars
)

Is it true to say that "being a special/builtin is separate from being
primitive on .Internal, however in practice all special and builtin
functions are primitive"?

-- 
Regards,
Richie

Learning R
4dpiecharts.com



[Rd] R-ints Argument Evaluation has out of date examples
Richard Cotton