第五章:函数式编程
¶主要内容
- 为什么函数式编程
- FP和OOP
- 各种形式的函数
- Monads以及应用实例
前面部分或多或少介绍了Scala的函数式编程,或在Scala的面向对象结构中混入了函数式编程。本章将专注于函数式编程概念,以及它们是如何在Scala中实现的。本章主要目的是使你对函数式编程有个清晰的感知,并帮助你编写函数式编程风格代码。
函数式编程 是一个编程范式,将计算行为模拟为表达式的求值。而这个表达式使用函数构建,不带有可变状态和副作用。函数式编程的起源是值得探索的1 。相信与否,函数式编程始于约1930,Alonzo Church 介绍的 λ演算2 。一个λ演算是一套用于研究函数定义、函数应用和递归的形式系统。λ演算的函数都是第一类值(first-class value);函数可以接收其它函数作为参数,返回函数作为输出(高阶函数)。