scala – 是否有更惯用的方法从Option [IO [Option [A]]获取IO [Option [A]]然后使用序列和映射连接?

前端之家收集整理的这篇文章主要介绍了scala – 是否有更惯用的方法从Option [IO [Option [A]]获取IO [Option [A]]然后使用序列和映射连接?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了很多我有类似东西的地方

def f(s: String): Option[Long] = ...
def g(l: Long): IO[Option[Wibble]] = ...

val a: IO[Option[Wibble]] = f(param).flatMap(g).sequence.map(_.join)

看到重复一遍又重复的.sequence.map(_.join)开始让我烦恼.有没有更惯用的方式来完成同样的事情?

解决方法

这听起来像是monad变换器的用例,在Haskell中可以看到 here,在Scala中可以看到 here中的解释.

猜你在找的Scala相关文章