8.1.2 函数式编程基本特性

在经常被引用的论文 “Why Functional Programming Matters” 中,作者 John Hughes 说明了模块化是成功编程的关键,而函数编程可以极大地改进模块化。

在函数编程中,我们有一个内置的框架来开发更小的、更简单的和更一般化的模块, 然后将它们组合在一起。

函数编程的一些基本特点包括:

  • 函数是”第一等公民”。
  • 闭包(Closure)和高阶函数(Higher Order Function)。
  • Lambda演算与函数柯里化(Currying)。
  • 懒惰计算(lazy evaluation)。
  • 使用递归作为控制流程的机制。
  • 引用透明性。
  • 没有副作用。