Modifies the default behavior of the function by adding one environment layer on top of input function. The masked variables are assigned directly to the environment.
Usage
mask_function2(f, ..., .list = list())
Examples
a <- 123
f1 <- function(){
a + 1
}
f1() # 124
#> [1] 124
f2 <- mask_function2(f1, a = 1)
f2() # a is masked with value 1, return 2
#> [1] 2
environment(f1) # global env
#> <environment: 0x565215df9578>
environment(f2) # masked env
#> <environment: 0x565215bcc9c0>
env <- environment(f2)
identical(parent.env(env), environment(f1)) # true
#> [1] TRUE
env$a # masked variables: a=1
#> [1] 1