猫是否有来自scalaz的traverseM?

时间:2015-11-08 03:24:59

标签: scala scalaz scala-cats

猫的scalaz中是否有等同于traverseM的函数?我没有找到任何与类型签名相匹配的内容。以下是scalaz scala文档中的签名和说明:

final def traverseM[A, G[_], B](fa: F[A])(f: (A) ⇒ G[F[B]])(implicit G: Applicative[G], F: Bind[F]): G[F[B]]
  

应用后续monadic连接的遍历版本   内心的结果。

基于猫中的其他功能自定义traverseM非常简单,但我更喜欢使用库中的函数(如果可用)。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是flatTraverse

类型签名是

flatTraverse[G[_], A, B](fa: F[A])(f: A => G[F[B]])(implicit G: Applicative[G], F: FlatMap[F]): G[F[B]]

与您提到的traverseM的签名大致相同。

答案 1 :(得分:0)

正如@Peter指出的那样,在0.6.0版本中,traverseMTraverse的一部分:

 /**
   * A traverse followed by flattening the inner result.
   */
  def traverseM[G[_], A, B](fa: F[A])(f: A => G[F[B]])(implicit G: Applicative[G], F: FlatMap[F]): G[F[B]]