| % File src/library/base/man/Primitive.Rd |
| % Part of the R package, https://www.R-project.org |
| % Copyright 1995-2018 R Core Team |
| % Distributed under GPL 2 or later |
| |
| \name{Primitive} |
| \alias{.Primitive} |
| \alias{primitive} |
| \title{Look Up a Primitive Function} |
| \description{ |
| \code{.Primitive} looks up by name a \sQuote{primitive} |
| (internally implemented) function. |
| } |
| \usage{ |
| .Primitive(name) |
| } |
| \arguments{ |
| \item{name}{name of the \R function.} |
| } |
| \details{ |
| The advantage of \code{.Primitive} over \code{\link{.Internal}} |
| functions is the potential efficiency of argument passing, and that |
| positional matching can be used where desirable, e.g.\sspace{}in |
| \code{\link{switch}}. For more details, see the \sQuote{R Internals} |
| manual. |
| |
| All primitive functions are in the base namespace. |
| |
| This function is almost never used: \code{`name`} or, more carefully, |
| \code{\link{get}(name, envir = baseenv())} work equally well and do |
| not depend on knowing which functions are primitive (which does change |
| as \R evolves). |
| } |
| \seealso{ |
| \code{\link{is.primitive}} showing that primitive functions come in |
| two types (\code{\link{typeof}}), |
| \code{\link{.Internal}}. |
| } |
| \examples{ |
| mysqrt <- .Primitive("sqrt") |
| c |
| .Internal # this one *must* be primitive! |
| `if` # need backticks |
| } |
| \keyword{interface} |