【发布时间】:2016-02-29 17:47:37
【问题描述】:
我有以下问题:
val sth: Future[Seq[T, S]] = for {
x <- whatever: Future[List[T]]
y <- x: List[T]
z <- f(y): Future[Option[S]]
n <- z: Option[S]
} yield y: T -> n: S
我想让这段代码工作(我想每个人都理解这个想法,因为我添加了类型)。
我所说的“工作”是指我希望保持理解结构并最终实现预期的类型。我知道有一些“丑陋”的方法可以做到,但我想学习如何纯粹地做到这一点:)
当我阅读互联网时,我得出的结论是,我的问题可以通过 monad 转换器和 scalaz 来解决。不幸的是,我找不到一个示例来帮助我更好地理解我应该如何进行。
目前我已经尝试过 scalaz 和 Eff monad 库,但我想我仍然不明白它是如何工作的,因为我无法解决我的问题。
如果有任何帮助,我将不胜感激。
编辑:它应该是序列的未来,也关于我得到它作为函数参数的“任何东西”,抱歉误导你
【问题讨论】:
标签: scala monads scalaz monad-transformers