在the chain
documentation中,您会找到:
在包装对象上调用
chain
将导致所有将来的方法调用 也可以返回包装对象。当你完成了 计算,使用value
来检索最终值。
chain
函数是否也创建了一个monad?
答案 0 :(得分:40)
(Wrapped a -> b) -> (Wrapped a -> Wrapped b)
value
的类型签名是:
Wrapped a -> a
这些正是您对comonad所需要的。第一个函数通常称为extend
,第二个函数通常称为extract
。
您可以将comonad视为具有一些额外上下文的值。这当然正是chain
所做的。
有关comonads的更多信息,请参阅this Stackoverflow question。