我担心维基百科没有给我带来任何进一步的信息。 非常感谢
PS:这个过去的帖子也很好,不过我很高兴我再次提出这个问题,因为新答案很棒 - 谢谢答案 0 :(得分:4)
(A)功能编程以机械方式描述解决方案。您可以定义一台不断正确输出的机器,例如:与Caml:
let rec factorial = function
| 0 -> 1
| n -> n * factorial(n - 1);;
(B)程序编程暂时描述解决方案。您描述了将给定输入转换为正确输出的一系列步骤,例如用Java:
int factorial(int n) {
int result = 1;
while (n > 0) {
result *= n--;
}
return result;
}
函数式编程语言希望你一直做(A)。对我来说,纯函数式编程最大的有形唯一性是无状态:你永远不会声明变量与它们的用途无关。