2

纯函数是返回值仅由其输入值决定的函数,没有可观察到的副作用。

有哪些方法可以在 R 中以编程方式捕获不纯函数?

  • 在探索一个包时,我经常这样做lsf.str("package:base")base在这里作为一个例子)。

  • 我还尝试通过源代码查看是否/在哪里调用了我知道不纯的函数。

  • 我倾向于多次运行函数文档中给出的示例并测试结果是否相等:例如。is.recursive(replicate(10, 1+2))

这都不是很耗时,而且我确信有一套更好/更强大的方法来探索哪些函数是不纯的。

那么 R 包中不纯函数的常见/稳健测试是什么?

- 最佳实践切线(随意忽略):此外,如果您有一个不纯的功能,您是否应该在其下明确记录它?

注意,我只是在寻找人们可能会使用的常见清单类型的东西,而不是总是能抓住所有情况的东西(因为这甚至可能是不可能的.._
4

0 回答 0