真正了解程序和功能之间的区别
我真的很难理解过程式和函数式编程范式之间的区别。 这是Wikipedia条目中有关函数式编程的前两段: 在计算机科学中,函数式编程是一种编程范例,将计算视为对数学函数的评估,并避免了状态和可变数据。与强调状态变化的命令式编程风格相反,它强调函数的应用。函数式编程起源于lambda演算,lambda演算是1930年代开发的用于研究函数定义,函数应用程序和递归的正式系统。许多函数式编程语言可以看作是lambda演算的精妙之处。 实际上,数学函数和命令式编程中使用的“函数”概念之间的区别在于命令式函数可能会产生副作用,从而改变程序状态的值。因此,它们缺乏参照透明性,即,相同的语言表达可能会在不同时间根据执行程序的状态产生不同的值。相反,在功能代码中,函数的输出值仅取决于输入到该函数的参数,因此f两次调用 具有相同参数值的函数x会产生相同的结果f(x)两次。消除副作用可以使理解和预测程序的行为变得更加容易,这是开发函数式编程的主要动机之一。 在第2段中, 相反,在功能代码中,函数的输出值仅取决于输入到函数的参数,因此f两次调用具有相同参数值的函数x会产生相同的结果f(x)。 程序编程不是完全一样吗? 在程序与功能上脱颖而出应该寻找什么?