函数编程中functor和monad的形象解释
函数编程中Functor函子与Monad是比较难理解的概念,本文使用了形象的图片方式解释了这两个概念,容易理解与学习,分别使用Haskell和Swift两种语言为案例。
1. 函子functor是一种实现fmap或map的数据类型
2. applicative是一种实现了Applicative 或apply的数据类型
3. monad是一种实现了Monad或flatmap的数据类型.
Haskell的Maybe和Swift的Optional是functor函子 applicative和Monad。那么函子、applicative和Monad三个区别是什么?
1. functor: 应用一个函数到包裹的值,使用fmap/map.
2. applicative: 应用一个包裹的函数到包裹的值。
3. monad: 应用一个返回包裹值的函数到一个包裹的值。