Is there a simple way to flatten a collection of try\'s to give either a success of the try values, or just the failure? For example:
def map(l:List[Int]) =
This is pretty close to minimal for fail-first operation:
def something[A](xs: Seq[Try[A]]) =
Try(xs.map(_.get))
(to the point where you shouldn't bother creating a method; just use Try
). If you want all the failures, a method is reasonable; I'd use an Either
:
def something[A](xs: Seq[Try[A]]) =
Try(Right(xs.map(_.get))).
getOrElse(Left(xs.collect{ case Failure(t) => t }))