Учитывая список входов, которые могут быть действительными или недействительными, есть хороший способ преобразовать список, но сбой при получении одного или нескольких недопустимых входов и, при необходимости, для возврата информации о эти недействительные входы? У меня есть что-то вроде этого, но он чувствует себя очень неэлегантно.Как лучше разделить допустимые или недопустимые входы
def processInput(inputList: List[Input]): Try[List[Output]] = {
inputList map { input =>
if (isValid(input)) Left(Output(input))
else Right(input)
} partition { result =>
result.isLeft
} match {
case (valids, Nil) =>
val outputList = valids map { case Left(output) => output }
Success(outputList)
case (_, invalids) =>
val errList = invalids map { case Right(invalid) => invalid }
Failure(new Throwable(s"The following inputs were invalid: ${errList.mkString(",")}"))
}
}
Есть ли лучший способ сделать это?