根据维基百科:
在计算机编程中,如果关于函数的以下两个语句均成立,则函数可以描述为纯函数:在给定相同的参数值的情况下,函数始终求值相同的结果值。函数结果值不能依赖于任何隐藏的信息或状态,这些信息或状态可能随着程序执行的进行或程序的不同执行之间的变化而变化,也不能依赖于I / O设备的任何外部输入。结果评估不会引起任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备。
我想知道是否有可能编写一个可以计算一个函数是否纯净的函数。JavaScript中的示例代码:
function sum(a,b) {
return a+b;
}
function say(x){
console.log(x);
}
isPure(sum) // True
isPure(say) // False
if (rand(1000000)<2) return WRONG_ANSWER
,那么多次对函数进行探查以获取一致的行为将无济于事。但是,如果您可以访问函数定义,则证明是微不足道的。