Имам резултат, състоящ се от списък с вектори в scalaz дизюнкция и искам да мога да изследвам и филтрирам елементи от дясната страна.
опростен пример:
import scalaz._
import Scalaz._
type TL = Throwable \/ List[Vector[Int]]
val goodTL: TL = \/-(List(Vector(1,2,3),Vector(), Vector(2,3,4)))
Ако искам да премахна празен елемент, а също и всякакви стойности != 2 от попълнени елементи, мога да направя следното:
for {
v <- goodTL
f = v.flatten
} yield for {
i <- f
if i != 2
} yield i
давам scalaz.\/[Nothing,List[Int]] = \/-(List(1, 3, 3, 4))
, което е това, което искам, но бих искал да знам дали има по-малко сложен начин за постигане на това.