Closure environments define the scope of functions (see env()). When a function call is evaluated, R creates an evaluation frame (see ctxt_stack()) that inherits from the closure environment. This makes all objects defined in the closure environment and all its parents available to code executed within the function.

fn_env(fn)

fn_env(x) <- value

## Arguments

fn, x A function. A new closure environment for the function.

## Details

fn_env() returns the closure environment of fn. There is also an assignment method to set a new closure environment.

## Examples

env <- child_env("base")
fn <- with_env(env, function() NULL)
identical(fn_env(fn), env)
#> [1] TRUE
other_env <- child_env("base")
fn_env(fn) <- other_env
identical(fn_env(fn), other_env)
#> [1] TRUE