Skip to Content

body {base}

Access to and Manipulation of the Body of a Function
Package: 
base
Version: 
R 3.0.1

Description

Get or set the body of a function.

Usage

body(fun = sys.function(sys.parent()))
body(fun, envir = environment(fun)) <- value

Arguments

fun
a function object, or see ‘Details’.
envir
environment in which the function should be defined.
value
an object, usually a language object: see section ‘Value’.

Details

For the first form, fun can be a character string naming the function to be manipulated, which is searched for from the parent frame. If it is not specified, the function calling body is used.

The bodies of all but the simplest are braced expressions, that is calls to {: see the ‘Examples’ section for how to create such a call.

Values

body returns the body of the function specified. This is normally a language object, most often a call to {, but it can also be an object (e.g. pi) to be the return value of the function.

The replacement form sets the body of a function to the object on the right hand side, and (potentially) resets the environment of the function. If value is of class "expression" the first element is used as the body: any additional elements are ignored, with a warning.

See Also

alist, args, function.

Examples

body(body)
f <- function(x) x^5
body(f) <- quote(5^x)
## or equivalently  body(f) <- expression(5^x)
f(3) # = 125
body(f)
 
## creating a multi-expression body
e <- expression(y <- x^2, return(y)) # or a list
body(f) <- as.call(c(as.name("{"), e))
f
f(8)

Documentation reproduced from R 3.0.1. License: GPL-2.