我刚刚开始学习 clojure。由于它属于函数式编程的类别,因此第一步我要弄清楚它与命令式编程有何不同。所以我从维基百科和其他来源学到了一些原始知识。所以我对这句话很困惑
命令式编程中有函数,函数式编程中有数学函数。这里数学函数到底是什么意思?它和函数有什么不同。
从数学角度考虑函数 f(x)=X^2+X+1 在面向对象编程中,我们编写一个函数,它接受参数 x 并返回计算值。我相信函数式编程也是如此。那么它是什么意思
Treats computation as the evaluation of mathematical functions
and avoids changing-state and mutable data.
感谢您的帮助!!
最佳答案
数学函数是指使用相同输入调用时始终返回相同值的函数。例如,以下不是数学函数:
a = 0
def f(x):
a += 1
return x + a
因为,当然,如果您使用相同的 x
多次调用它,您将得到不同的值。发生这种情况是因为 f
递增 a
,这就是所谓的副作用,也是函数式编程中应该避免的情况。
关于clojure - 函数式编程中的数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34790545/