如何将 scalaz.EitherT.fromEither 应用于 scalaz.\/?
How apply scalaz.EitherT.fromEither to scalaz.\/?
我正在尝试根据 question 改编我的代码。一切都很好,除了我的方法 returns scalaz.\/
而不是 scala.util.Either
。所以现在我必须写一个像这样的猴子代码:
def myFunction:Future[LeftBad \/ RightGood] = ...
val result = for {
x <- fromEither(myFunction.map(_.toEither))
} yield {
...
}
result.run
//etc
有没有一种方法可以在不调用 toEither
的情况下从 Future[\/]
构造 EitherT
?
您可以使用 EitherT.eitherT(...)
or just EitherT(...)
:
import scalaz._, Scalaz._
val futDisjunction: Future[String \/ Int] = Future.successful(\/-(5))
scala> EitherT(futDisjunction)
// scalaz.EitherT[scala.concurrent.Future,String,Int]
我正在尝试根据 question 改编我的代码。一切都很好,除了我的方法 returns scalaz.\/
而不是 scala.util.Either
。所以现在我必须写一个像这样的猴子代码:
def myFunction:Future[LeftBad \/ RightGood] = ...
val result = for {
x <- fromEither(myFunction.map(_.toEither))
} yield {
...
}
result.run
//etc
有没有一种方法可以在不调用 toEither
的情况下从 Future[\/]
构造 EitherT
?
您可以使用 EitherT.eitherT(...)
or just EitherT(...)
:
import scalaz._, Scalaz._
val futDisjunction: Future[String \/ Int] = Future.successful(\/-(5))
scala> EitherT(futDisjunction)
// scalaz.EitherT[scala.concurrent.Future,String,Int]