【问题标题】:Function that returns function with argument返回带参数的函数的函数
【发布时间】:2023-01-04 23:28:11
【问题描述】:

创建一个应该返回包含原始函数参数的函数的函数时,我应该怎么做?

例如考虑这个功能:

a <- function(value){
  function(x) x + value
}

我希望它返回我在结果函数的参数中指定的值,如下所示:

#Expected
> a(3)
function(x) x + 3

相反,无论 value 是什么,我都会得到 function(x) x + value。我试过使用substituteevalparse...但我有点困惑。最好是碱基 R 溶液。

【问题讨论】:

    标签: r functional-programming


    【解决方案1】:

    您可以使用 str2lang() 将字符串转换为表达式:

    a <- function(value){
      str2lang(paste0('function(x) x + ', value))
    }
    
    a(3)
    #> function(x) x + 3
    

    创建于 2023-01-04 reprex v2.0.2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2014-01-12
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多