Я играю со Scala (z), чтобы изучить функциональное программирование.
У меня есть значение типа Future[List[Error \/ Double]]
, и я хочу преобразовать его во что-то с типом Future[[List[Error] \/ List[Double]]
.
Цель состоит в том, чтобы сгруппировать левые и правые.
В настоящее время у меня есть следующее:
val foo: Future[List[Error] \/ List[Double]] = {
for {
results <- resultsF
} yield
results.foldLeft(\/[List[Error], List[Double]])({
case (acc, v) if v.isRight => v :: \/-(acc)
case (acc, v) if v.isLeft => v :: -\/(acc)
})
}
Тем не менее, я получаю ошибку на ::
, которая связана с тем, что мой аккумулятор не является списком (извне) \/[List[Error], List[Double]]
. Как это сделать?