Mat*_*ing 3 monads scala monad-transformers scalaz
我一直在尝试简单的 Monad Transformers,其中我对涉及M[F[A]]whereM和Fare monad 的理解。如果是不同的单子,我如何在 for comp 中一起制作M[F[A]]和工作?M[S[A]]S
例如:
val a: Future[List[Int]] = ...
val b: Future[Option[Int]] = ...
Run Code Online (Sandbox Code Playgroud)
a需要 aListT[Future, Int]和b需要 anOptionT[Future, Int]但这些不组成,我需要使用另一个变压器吗?这取决于我在 for comp 中使用它们的顺序吗?
Monad Transformers 帮助您组合两个类型的值F[G[X]]。
换句话说,monad 转换器可以使用,F[G[X]]因为它们利用了这样一个事实:您知道如何组合两个G[X](如果Monad[G]存在)。
F[G[X]现在,在和 的情况下F[H[X]],即使您声明G并H有Monad实例,您仍然没有组合它们的通用方法。
我担心编写F[G[X]]并且F[H[X]]没有关于 monad 变压器的通用解决方案。
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |