首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IO Monad vs Reader Monad

IO Monad vs Reader Monad
EN

Stack Overflow用户
提问于 2019-07-04 04:49:34
回答 1查看 431关注 0票数 1

我想知道IO Monad和Reader monad之间有什么关系吗?

Reader monad中的环境会产生影响吗?如果是这样,ZIO或Cats IO,scalaz-effects如何处理Reader Monad原则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-09 18:27:08

Reader中的环境通常不会产生影响--它不需要产生影响。

要理解其中的原因,您首先需要了解Reader monad是functions A => B之上的抽象,其中A是某种环境。

一般来说,如果你有一个效果函数,你总是可以使用Readerapply - F[A]map这个值,对吧?

对于cats-effectReader被简单地定义为Kleisli (函数A => F[B]上的抽象),F[_]被定义为type F[A] = AKleisli在组合方面提供了你需要的一切,这就是为什么Reader被定义为Kleisli的一个子集。你可以在here上阅读更多关于它的内容。

对于ZIO来说,事情看起来有点不同。

看看它的定义:ZIO[R, E, A]。这三个类型参数描述环境(R)、错误类型(E)和结果类型(A)。

这意味着ZIO已经是IOReader monads的组合。在ZIO中,您可以使用access- function访问环境。

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

https://stackoverflow.com/questions/56877750

复制
相关文章

相似问题

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