Тривиальный пример
List.range(1, 10).filter(_ % 2 == 0)
Это даст список (2,4,6,8). Какой лучший способ получить то, что было отфильтровано: Список (1,3,5,7,9)
Если вы хотите знать, что проходит некоторый фильтр, а что нет, вместо filter используйте partition:
filter
partition
val (even, odd) = List.range(1, 10).partition(_ % 2 == 0) // even: List[Int] = List(2, 4, 6, 8) // odd: List[Int] = List(1, 3, 5, 7, 9)