In the chain文档 http://underscorejs.org/#chaining你发现:
Calling chain
在包装对象上将导致所有未来的方法调用
也返回包装的对象。当你完成后
计算、使用value
检索最终值。
也是如此chain http://underscorejs.org/#chain函数创建一个 monad?
不,不是单子,而是共单子!它将一个接受包装对象并返回普通值的函数转换为一个既接受又返回包装对象的函数。作为 Haskell 类型签名,将是:
(Wrapped a -> b) -> (Wrapped a -> Wrapped b)
的类型签名value
is:
Wrapped a -> a
这些正是 comonad 所需要的。第一个函数通常被称为extend
和第二个extract
.
您可以将 comonad 视为带有一些额外上下文的值。当然,这正是chain
does.
See 这个 Stackoverflow 问题 https://stackoverflow.com/questions/8428554/what-is-the-comonad-typeclass-in-haskell有关 comonad 的更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)