纯函数可以在同一个类中使用私有常量变量吗?

时间:2016-09-14 19:09:49

标签: functional-programming pure-function

纯函数可以在同一个类中使用私有常量变量吗?

例如:

class TimesThousand {
  const CONSTANT = 1000;

  function calculate(number) {
    return number * CONSTANT;
  }
}

可以将calculate()视为pure function吗?

1 个答案:

答案 0 :(得分:2)

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

所以你的功能是纯粹的。由于CONSTANT的值(顾名思义)为常量,因此输出完全取决于输入。

来自Wikipedia

  

如果以下关于函数的两个语句都成立,则函数可以被认为是纯函数:

     
      
  1. 在给定相同参数值的情况下,函数始终评估相同的结果值。函数结果值不能依赖于程序执行过程中或程序执行不同时可能发生的任何隐藏信息或状态,也不依赖于I / O设备的任何外部输入。
  2.   
  3. 评估结果不会导致任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备。
  4.