【问题标题】:Using curry to export dependencies to foreach使用curry将依赖导出到foreach
【发布时间】:2020-10-15 18:53:13
【问题描述】:

我正在使用 R 编写一个 R6 类函数,其中包含一个 foreach 循环。我不想将 R6 对象导出到 foreach 中——它非常大——但我确实需要使用一个调用其他函数的函数(并且我可以轻松导出该函数需要的 3-4 个变量)。假设在我的 foreach 中我需要调用一个函数 foo:

foo = function(x, y) {
  z = self$goo(x)
  w = z + y
  return(w)
}

然后

foreach (...) %dopar% {
  res = foo(v1, v2)
}

问题是,foo() 无法运行,因为它找不到 self$goo()。我可以显式导出整个堆栈,但将 foo() 的依赖项自动组合到单个函数中会更容易。我已经尝试过functional::Curry,希望curry 函数会引入所有依赖代码,但无济于事。是否与咖喱或任何其他方式有关?

【问题讨论】:

    标签: r foreach currying


    【解决方案1】:

    好的,想通了。例如,虽然 functional::Curry 不会将依赖项注入到生成的 curried 函数中,但 purrr::partial 显然会。另外,CodeDepends 也很有帮助!

    【讨论】:

    • 你能补充一下它是如何工作的吗?您也可以接受自己的答案,您至少还有一个可以接受的其他自我答案
    • 只是purrr::partial(foo),然后是foo(x, y)
    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 2020-09-03
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多