I want to split a List[Either[A, B]] in two lists.
List[Either[A, B]]
Is there a better way ?
def lefts[A, B](eithers : List[Either[A, B]]) : List[A] = eit
A somewhat functional solution for Seq.
Seq
def partition[A, B](seq: Seq[Either[A, B]]): (Seq[A], Seq[B]) = { seq.foldLeft[(Seq[A], Seq[B])]((Nil, Nil)) { case ((ls, rs), next) => next match { case Left(l) => (ls :+ l, rs) case Right(r) => (ls, rs :+ r) } } }