Я пытаюсь использовать аппликативный строитель Scalaz, чтобы упростить код, который работает несколько фьючерсов параллельно:значение | @ | не является членом scala.concurrent.Future [String]
import scalaz._, Scalaz._
val fooF: Future [String] = myService.getFoo()
val barF: Future [String] = myService.getBar()
val resultF = for {
foo <- fooF
bar <- barF
}
yield { foo + bar }
Я понимаю, что я должен быть в состоянии переписать код, указанный выше, как так:
val resultF = (myService.getFoo() |@| myService.getBar()) {
(foo, bar) => { foo + bar }
}
Однако я получаю следующее сообщение об ошибке компиляции:
value |@| is not a member of scala.concurrent.Future[String]
Что я делал неправильно?
которые фьючерсы? фьючерсы scala? фьючерсы на скалаз? что-то другое? Если фьючерсы scala, то какая версия скаляза? более старые версии scalaz не имели экземпляров scala.concurrent.Future typeclass, и вам пришлось импортировать библиотеку scalaz-contrib для них. – stew