Put a function in a "lean" environment that does not carry unnecessary baggage with it (e.g. references to datasets).

crate(.fn, ..., .parent = .GlobalEnv)

Arguments

.fn

(function())
function to crate

...

(any)
The objects, which should be visible inside .fn.

.parent

(environment)
Parent environment to look up names. Default so the global environment.

Examples

meta_f = function(z) { x = 1 y = 2 crate(function() { c(x, y, z) }, x) } x = 100 y = 200 z = 300 f = meta_f(1) f()
#> Error in f(): object 'y' not found