These functions provide the base mechanisms for defining
new functions in the R language.
function( arglist ) exprreturn(value)
Empty or one or more name or name=expression terms.
This type of function is not the only type in R: they are called
closures (a name with origins in LISP) to distinguish them from
A closure has three components, its formals (its argument
list), its body (expr in the ‘Usage’
section) and its environment which provides the
enclosure of the evaluation frame when the closure is used.
There is an optional further component if the closure has been
byte-compiled. This is not normally user-visible, but it indicated
when functions are printed.
The names in an argument list can be back-quoted non-standard names
If value is missing, NULL is returned. If it is a
single expression, the value of the evaluated expression is returned.
(The expression is evaluated as soon as return is called, in
the evaluation frame of the function and before any
on.exit expression is evaluated.)
If the end of a function is reached without calling return, the
value of the last evaluated expression is returned.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
The New S Language.
Wadsworth & Brooks/Cole.