function                package:base                R Documentation

Function Definition

Description:

     These functions provide the base mechanisms for defining new
     functions in the R language.

Usage:

     function( arglist ) expr
     return(value)

Arguments:

 arglist: Empty or one or more name or name=expression terms.

   value: An expression.

Details:

     The names in an argument list can be back-quoted non-standard
     names (see 'backquote').

     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.

Warning:

     Prior to R 1.8.0, 'value' could be a series of non-empty
     expressions separated by commas.  In that case the value returned
     is a list of the evaluated expressions, with names set to the
     expressions where these are the names of R objects.  That is,
     'a=foo()' names the list component 'a' and gives it the value
     which results from evaluating 'foo()'.

     This has been deprecated (and a warning is given), as it was never
     documented in S, and whether or not the list is named differs by S
     versions.  Supply a (named) list 'value' instead.

References:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

See Also:

     'args' and 'body' for accessing the arguments and body of a
     function.

     'debug' for debugging; using 'invisible' inside 'return(.)' for
     returning _invisibly_.

Examples:

     norm <- function(x) sqrt(x%*%x)
     norm(1:4)

     ## An anonymous function:
     (function(x,y){ z <- x^2 + y^2; x+y+z })(0:7, 1)

