【发布时间】:2017-07-02 16:12:41
【问题描述】:
我正在尝试了解如何使用 Monad Transformers。我阅读了关于它的wiki article,但仍有一些问题。
我们有需要读取用户输入的IO monad。但并不总是提供输入。所以它是Option。为了简化,我们可以定义一个单子OptionT,它“封装”了IO单子的动作。
在我的特殊情况下,我有两个类型为 Future[Option[String]] 和 Future[List[Int]] 的单子。这意味着为了简化它,我需要两个不同的转换器 ListT[T] 和 OptionT[T] 分别用于我嵌入 Future 行为的每个 monad 类型......对吗?
【问题讨论】: