I have written this code
def valid1() : Validated[List[String], Boolean] = {...}
def valid2() : Validated[List[String], Boolean] = {...}
def valid3() : Validated[List[String], Boolean] = {...}
def valid4() : Validated[List[String], Boolean] = {...}
val consolidated = valid1 |@| valid2 |@| valid3 |@| valid4
consolidated.map{_ && _ && _ && _} match {
case Valid(true) => // do something
case Invalid(errorList) => // do something
}
Instead of doing |@|
on each intermediate validation and doing a &&
inside the map... can I write it in a simpler way? I guess individually trying to do |@|
and then &&
makes the code look a little scary. (sorry I am not a jedi yet)