自左向右的Kleisli组合Monad运算符写成>@>的出处?
整理一年前的笔记,看到一段代码:
(>@>) :: Monad m => (a -> m b) ->
(b -> m c) ->
(a -> m c)
f >@> g = \x -> (f x) >= g
看起来是Monad Composition,但是当初没有写下出处。
搜索引擎对>@>
这样的字符很不友好,好在有类型,hoogle到就是Control.Monad中的>=>
(Left-to-right Kleisli composition of monads),定义完全一致:
(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c)
f >=> g = \x -> f x >>= g
只是写法不一样(>=>
和>@>
)。
搜了下Haskell 98里并没有这个运算符。
好奇这个>@>
出自哪里?(所以一年前的我为什么没有记录出处啊?坑!)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论