函数式编程是种编程方式,它将电脑运算视为函数的计算。
函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里函数的计算可随时调用。
相比于命令式编程关心解决问题的步骤,函数式编程是面向数学的抽象,关心数据(代数结构)之间的映射关系。
函数式编程将计算描述为一种表达式求值。
在狭义上,函数式编程意味着没有可变变量,赋值,循环和其他的命令式控制结构。即,纯函数式编程语言。
Pure Lisp, XSLT, XPath, XQuery, FP
Haskell (without I/O Monad or UnsafPerformIO) 在广义上,函数式编程意味着专注于函数Lisp, Scheme, Racket, Clojure
SML, Ocaml, F#
Scala
Smalltalk, Ruby
为什么函数式编程语言会流行?
借用比较有代表性的回答
#t#joel.neely :
我觉得,对于函数式编程会流行这一话题没有任何疑问,因为作为一种编程方式,它都用了大约四十年了。面向对象的程序员,每当为了编写干净简洁的代码而使用了不可变对象时( immutable object ) , 这都是借用了函数式编程的概念。
Greg Hewgill :
对我来说,主要的加分处在于它固有的并行操作性,尤其是现在更高频率的CPU正在转变为更多内核。stbuton :
即使你在工作中从不会用到函数式语言, 理解函数式编程将能够让你成为一一个更优秀的开发人员。总的来讲,对于代码和编程,它将给予你一个新的视角。