Functor与Monad,是Category Theory中的概念。但是在实际编程中,这两个东西到底是什么?
通过之前的内容,可以给出两个在编程中非常不严谨的Functor与Monad定义:
为了便于理解,到现在还没有引入Functor和Monad的形式化定义。后面有机会再引入。
所以,问题就转换为:
先给出答案:
A -> B
的函数,转换为 T[A] -> T[B]
的函数A -> T[B]
的函数,转换为 T[A] -> T[B]
的函数简单一句话:为了compose
复杂解释:
Option<T>
,或者其它常见的Maybe<T>
,Result<T>
等。T[]
这个容器中)这里有一个遗漏了的函数签名,是 T[A -> B]
。(在函数式编程里,函数是一等公民,函数本身也是一个值,所以也可以放进容器里)