有人可以用外行的方式解释什么是函数式语言?

时间:2011-12-30 18:53:16

标签: functional-programming

  

可能重复:
  Functional programming and non-functional programming

我担心维基百科没有给我带来任何进一步的信息。 非常感谢

PS:这个过去的帖子也很好,不过我很高兴我再次提出这个问题,因为新答案很棒 - 谢谢

Functional programming and non-functional programming

1 个答案:

答案 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)。对我来说,纯函数式编程最大的有形唯一性是无状态:你永远不会声明变量与它们的用途无关。