blob: 9b15118dba7f335e6fb704d15afdad9eea7dbc58 [file] [log] [blame]
% File src/library/base/man/is.language.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2018 R Core Team
% Distributed under GPL 2 or later
\name{is.language}
\title{Is an Object a Language Object?}
\alias{is.language}
\alias{language}
\alias{language object}
\alias{language objects}
\usage{
is.language(x)
}
\description{
\code{is.language} returns \code{TRUE} if \code{x} is a
variable \code{\link{name}}, a \code{\link{call}}, or an
\code{\link{expression}}.
}
\arguments{
\item{x}{object to be tested.}
}
\note{
A \code{name} is also known as \sQuote{symbol}, from its type
(\code{\link{typeof}}), see \code{\link{is.symbol}}.
If \code{\link{typeof}(x) == "language"}, then \code{is.language(x)}
is always true, but the reverse does not hold as expressions or
names \code{y} also fulfill \code{is.language(y)}, see the examples.
This is a \link{primitive} function.
}
\references{
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
\emph{The New S Language}.
Wadsworth & Brooks/Cole.
}
\examples{
ll <- list(a = expression(x^2 - 2*x + 1), b = as.name("Jim"),
c = as.expression(exp(1)), d = call("sin", pi))
sapply(ll, typeof)
sapply(ll, mode)
stopifnot(sapply(ll, is.language))
}
\keyword{programming}