函数式编程简介

函数式编程原则

just mapping

  • not “do” or “calculate”
  • denotational not operational (指示语义而不是操作语义)

immutablility

  • no side effecs 没有副作用

函数式编程优点

不变性

通常,函数式编程语言没有可变变量,一旦赋了值,就不能改变。这让代码行为更容易预测,并且减少了系统错误的数量,从而提高了系统的稳定性。

容错

  • 容错是指即使出现错误,系统可以继续运行。有些函数式编程语言(如 Erlang)默认具有容错功能。
  • 任意顺序结果都是一样的。

易于并行化,高度分布式

函数式编程语言可以让你创建高度并行化和高度分布式的系统。用于迭代的内置函数(如 map 和 reduce)在区块链开发中发挥作用。

函数式编程模式

Monad

Monad 是函数式编程的一种实现模式,表示将一个运算过程,通过函数拆解成互相连接的多个步骤的运算。通过提供下一步运算所需的函数进行下一步运算。

半群Semigroup

函数式编程中一个重要概念是组合, 一个聚合体或复杂元素是由很多小部分组合而成。但是不是所有的组合形式是一样的。

Map & Reduce

  • 通过map能遍历数组结构内部数据并且转换成想要的对象;
  • 通过reduce能遍历数组转换成目标对象。

参考