У меня есть функция, которая разбивает List [B] пополам и возвращает кортеж.
Мне нужно освободить комбинаторы для их параллельного выполнения.
Если я делаю что-то вроде fl.map (x => x.map (...)), это не параллельно.
object Parallel {
implicit class ParList[A](fl: Future[List[A]]) {
private def split[B](l: List[B]): (List[B], List[B]) = l.splitAt(l.length / 2)
def paralFilter(f: A => Boolean): Future[List[A]] = ???
def paralFold(init: A)(f: (A, A) => A): Future[A] = ???
}
Я понимаю, что я должен разделить список поэлементно через split [B] и выполнять комбинаторы с элементами параллельно. Как я могу это сделать?