\Header{is.recursive}{Is an Object Atomic or Recursive?}
\alias{is.atomic}{is.recursive}
\keyword{programming}{is.recursive}
\keyword{classes}{is.recursive}
\begin{Description}\relax
\code{is.atomic} returns \code{TRUE} if \code{x}
does not have a list structure and \code{FALSE} otherwise.

\code{is.recursive} returns \code{TRUE} if \code{x} has a recursive
(list-like) structure and \code{FALSE} otherwise.\end{Description}
\begin{Usage}
\begin{verbatim}
is.atomic(x)
is.recursive(x)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] object to be tested.
\end{ldescription}
\end{Arguments}
\begin{SeeAlso}\relax
\code{\Link{is.list}}, \code{\Link{is.language}}, etc, and the
\code{demo("is.things")}.\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
is.a.r <- function(x) c(is.atomic(x), is.recursive(x))

is.a.r(c(a=1,b=3))# TRUE FALSE
is.a.r(list())    # FALSE TRUE ??
is.a.r(list(2))   # FALSE TRUE
is.a.r(lm)        #   "
is.a.r(y ~ x)     #   "
is.a.r(expression(x+1))# should be F-T (not in 0.62.3!)
\end{ExampleCode}
\end{Examples}

