Это можно сделать в два этапа.
val (t,f) = List(1, 2, 3, 4).partition(_ < 3)
val m = Map(true -> t, false -> f)
//Map[Boolean,List[Int]] = Map(true -> List(1, 2), false -> List(3, 4))
Это также работает для ленивых коллекций.
val (t,f) = Iterator.from(1).partition(_%3<1)
val m = Map(true -> t, false -> f)
//Map[Boolean,Iterator[Int]] = Map(true -> non-empty iterator, false -> non-empty iterator)
m(true).take(12).toList
//res0: List[Int] = List(3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36)
m(false).take(12).toList
//res1: List[Int] = List(1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17)