从给定函数而不是类型化函数在R中创建函数工厂

从给定函数而不是类型化函数在R中创建函数工厂,r,function,factory,R,Function,Factory,通常在R中,可以通过在内部编写母函数的代码来创建函数工厂。但是我想使用一个已经定义的函数作为母函数 我做了以下工作: 创建函数工厂的典型方法: 电源\u工厂父级: >绑定: >*出口: rlang::fn_envsquare$exp > [1] 2 但我需要从一个已经定义的母函数执行此操作: 母亲的乐趣: >*动力装置厂: >*乐母: >*.Random.seed: >*广场: rlang::fn_envsquare$exp >空的 显然,不能像上面那样直接包含包含母函数的变量,即mother_

通常在R中,可以通过在内部编写母函数的代码来创建函数工厂。但是我想使用一个已经定义的函数作为母函数

我做了以下工作:

创建函数工厂的典型方法: 电源\u工厂父级: >绑定: >*出口: rlang::fn_envsquare$exp > [1] 2 但我需要从一个已经定义的母函数执行此操作: 母亲的乐趣: >*动力装置厂: >*乐母: >*.Random.seed: >*广场: rlang::fn_envsquare$exp >空的
显然,不能像上面那样直接包含包含母函数的变量,即mother_fun,因为变量exp没有绑定。我在元编程环境中尝试了很多东西,试图使用表达式和准旋转,但没有成功。欢迎任何帮助!谢谢。

只要函数是闭包而不是原始函数,就可以执行此操作:

mother_fun <- function(x) {
  x ^ exp
}

environment(mother_fun) <- new.env()
environment(mother_fun)$exp <- 2

mother_fun(3)
#[1] 9