\Header{match.call}{Argument Matching}
\keyword{programming}{match.call}
\begin{Description}\relax
\code{match.call} returns a call in which all of the arguments are
specified by their names.  The most common use is to get the call of
the current function, with all arguments named.
\end{Description}
\begin{Usage}
\begin{verbatim}
match.call(definition = NULL, call = sys.call(sys.parent()),
           expand.dots = TRUE)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{definition}] a function, by default the function from which
\code{match.call} is called.
\item[\code{call}] an unevaluated call to the function specified by
\code{definition}, as generated by \code{\Link{call}}.
\item[\code{expand.dots}] logical. Should arguments matching \code{...}
in the call be included or left as a \code{...} argument?
\end{ldescription}
\end{Arguments}
\begin{Value}
An object of class \code{call}.
\end{Value}
\begin{References}\relax
Chambers, J. M. (1998)
\emph{Programming with Data. A Guide to the S Language}.
Springer.
\end{References}
\begin{SeeAlso}\relax
\code{\Link{call}}, \code{\Link{pmatch}}, \code{\Link{match.arg}},
\code{\Link{match.fun}}.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
match.call(get, call("get", "abc", i = FALSE, p = 3))
## -> get(x = "abc", pos = 3, inherits = FALSE)
fun <- function(x, lower = 0, upper = 1) {
  structure((x - lower) / (upper - lower), CALL = match.call())
}
fun(4 * atan(1), u = pi)
\end{ExampleCode}
\end{Examples}

