首页 > 解决方案 > 强制 R 函数调用是纯的

问题描述

问题

有没有办法强制 R 中的函数调用是纯的?用例:drake. 我想保护调用环境及其祖先免受用户函数的修改。

测试用例

before <- ls()
f <- function() {
  x <<- 1
  data("mtcars")
  return("abc")
}
output <- pure_function_call(f())
after <- setdiff(ls(), c("before", "f", "output"))
print(before)
print(after)
print(output)

要求

过去的尝试失败

标签: rpurely-functional

解决方案


推荐阅读