blob: c344b783a9d339d98085e35885d12dbf237865ae [file] [log] [blame]
% File src/library/base/man/nargs.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{nargs}
\title{The Number of Arguments to a Function}
\usage{nargs()}
\alias{nargs}
\description{
When used inside a function body, \code{nargs} returns the number of
arguments supplied to that function, \emph{including} positional
arguments left blank.
}
\details{
The count includes empty (missing) arguments, so that \code{foo(x,,z)}
will be considered to have three arguments (see \sQuote{Examples}).
This can occur in rather indirect ways, so for example \code{x[]}
might dispatch a call to \code{`[.some_method`(x, )} which is
considered to have two arguments.
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.
}
\seealso{
\code{\link{args}}, \code{\link{formals}} and \code{\link{sys.call}}.
}
\examples{
tst <- function(a, b = 3, ...) {nargs()}
tst() # 0
tst(clicketyclack) # 1 (even non-existing)
tst(c1, a2, rr3) # 3
foo <- function(x, y, z, w) {
cat("call was ", deparse(match.call()), "\n", sep = "")
nargs()
}
foo() # 0
foo(, , 3) # 3
foo(z = 3) # 1, even though this is the same call
nargs() # not really meaningful
}
\keyword{programming}