body

0th

Percentile

Access to and Manipulation of the Body of a Function

Get or set the body of a function.

Keywords
programming
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.

Value

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.

Aliases
  • body
  • body<-
Examples
library(base) # NOT RUN { 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) # } # NOT RUN { <!-- %% Rd parser bug? : need to backslash-escape the "{" below: --> # } # NOT RUN { ## Using substitute() may be simpler than 'as.call(c(as.name("{",..)))': stopifnot(identical(body(f), substitute({ y <- x^2; return(y) }))) # }
Documentation reproduced from package base, version 3.5.1, License: Part of R 3.5.1

Community examples

Looks like there are no examples yet.