Ich habe ein Ergebnis, bestehend aus einer Liste von Vektoren in einer Scalaz-Disjunktion, und ich möchte Elemente aus der rechten Seite untersuchen und herausfiltern können.Filterwerte auf der rechten Seite der Scalaz-Disjunktion
vereinfachtes Beispiel:
import scalaz._
import Scalaz._
type TL = Throwable \/ List[Vector[Int]]
val goodTL: TL = \/-(List(Vector(1,2,3),Vector(), Vector(2,3,4)))
Wenn ich leer Element und auch alle Werte = 2 aus besiedelten Elemente entfernen, möchte ich folgendes tun:
for {
v <- goodTL
f = v.flatten
} yield for {
i <- f
if i != 2
} yield i
ein scalaz.\/[Nothing,List[Int]] = \/-(List(1, 3, 3, 4))
geben, welche, was Ich möchte, aber ich würde gerne wissen, ob es einen weniger komplizierten Weg gibt, dies zu erreichen.
Zuckerfrei ist definitiv schöner. Vielen Dank. – Gavin