Я пытаюсь использовать Scalaz EitherT с помощью scala.concurrent.Future. При попытке использовать его в наличии для понимания:Отсутствие экземпляров Functor и Monad при использовании scala.concurrent.Future с EitherT
import scalaz._
import Scalaz._
val et1:EitherT[Future, String, Int] = EitherT(Future.successful(1.right))
val et2:EitherT[Future, String, String] = EitherT(Future.successful("done".right))
val r:EitherT[Future, String, String] = for {
a <- et1
b <- et2
} yield (s"$a $b")
Я получаю недостающую Functor и Monad экземпляров ошибка:
could not find implicit value for parameter F: scalaz.Functor[scala.concurrent.Future]
b <- et2
^
could not find implicit value for parameter F: scalaz.Monad[scala.concurrent.Future]
a <- et1
DoES scalaz определяют экземпляры для функтора и монады для будущего? Если нет других библиотек, которые предоставляют эти экземпляры или мне нужно их написать?
, что не похоже на работу. – ssanj
Это работает для меня. Я обновил свой ответ с полным рабочим примером. – danielnixon
Да, это работает! Должно быть, я пропустил что-то, когда пытался. Благодарю. – ssanj