首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Monad of monads to monads

Monad of monads to monads
EN

Stack Overflow用户
提问于 2018-01-08 05:54:25
回答 1查看 174关注 0票数 0

从scala monads开始。一个人经常会遇到处理单音单音的情况,为了我们的方便,需要将其转换为单音单音。例如,

代码语言:javascript
复制
Set[IO[Either[A,B]] -> IO[Set[C]]

虽然这可以通过转换成序列然后映射来实现,

代码语言:javascript
复制
monadSet
.toList
.sequence[IO, Either[A,B]]
.map(...)

当存在不止一个时,情况就变得复杂了,

比如IO[IO[Set[Either[A,B]]]]Future[Set[Either[A, Future[B]]。通常情况下,如何处理这些嵌套的monad还不是很清楚。这方面的任何资源都会很有帮助。

编辑:相同类型的嵌套monad通常不是问题。主要问题是不同类型的嵌套monad。

EN

回答 1

Stack Overflow用户

发布于 2018-01-11 23:02:25

谢谢你的评论。虽然一般来说,monads不能组合,但我发现herding cats monad transformers在一定程度上解决了这个问题。

尤其是EitherToptionT封装了多个monads,并提供了处理monads的通用方法。它们只是直观的,这个blog也有助于理解它背后的动机。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48141891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档