我必须承认我对函数式编程了解不多。我从这里和那里读到它,所以开始知道在函数式编程中,一个函数返回相同的输出,对于相同的输入,无论函数被调用多少次。它就像一个数学函数,对于函数表达式中包含的输入参数的相同值,计算出相同的输出。
例如,考虑这个:
f(x,y) = x*x + y; // It is a mathematical function
无论您使用f(10,4)
多少次,它的值始终是104
。因此,无论您在哪里编写了f(10,4)
,都可以将其替换为104
,而不改变整个表达式的值。这个属性被称为表达式的引用透明性。
正如维基百科所说(链接),
相反,在函数式代码中,函数的输出值只取决于函数的输入参数,因此调用函数f两次,参数x的值相同,两次将产生相同的结果f(x)。
函数式编程中是否存在时间函数(返回当前的时间)?
如果是,那它怎么可能存在?它是否违反了函数式编程的原则?它特别违反了引用透明性,这是函数式编程的属性之一(如果我理解正确的话)。
如果没有,那么在函数式编程中如何知道当前时间呢?