纯函数是返回值仅由其输入值决定的函数,没有可观察到的副作用。
有哪些方法可以在 R 中以编程方式捕获不纯函数?
在探索一个包时,我经常这样做
lsf.str("package:base")
(base
在这里作为一个例子)。我还尝试通过源代码查看是否/在哪里调用了我知道不纯的函数。
我倾向于多次运行函数文档中给出的示例并测试结果是否相等:例如。
is.recursive(replicate(10, 1+2))
这都不是很耗时,而且我确信有一套更好/更强大的方法来探索哪些函数是不纯的。
那么 R 包中不纯函数的常见/稳健测试是什么?
- 最佳实践切线(随意忽略):此外,如果您有一个不纯的功能,您是否应该在其下明确记录它?