众所周知的事实(>>=)
可以使用而实现fmap
,join
并且join
可以使用实现>>=
.是否有任何理由我们没有Monad
使用join
包含和使用以下默认定义来定义类?
join x = x >>= id
x >>= f = join $ f <$> x
Run Code Online (Sandbox Code Playgroud)
这将允许最小定义包括just (>>=)
或join
,而不是强制(>>=)
.考虑到类别理论倾向于支持,可能会有点帮助join
.
反对修改类的常见理由是我们打破了向后兼容性.但是,在这种情况下,这不会发生 - 我们只增加了定义Monad
使用的可能性join
.
dup*_*ode 21
这应该与Applicative-Monad提案(已经进入GHC 7.10)一起发生.但是,GHC中存在一个涉及类型角色的技术问题,它无限期地推迟了您的建议.
归档时间: |
|
查看次数: |
493 次 |
最近记录: |