在scala中按条件创建两个列表

时间:2014-06-27 10:23:14

标签: scala functional-programming

如何使用Scala中的某些条件从一个列表创建两个列表。 使用过滤器我会获得单个列表,也许某个函数返回元组?

1 个答案:

答案 0 :(得分:2)

有一个叫做分区的功能:

def partition(p: (A) ⇒ Boolean): (List[A], List[A])

我想这就是你想要的。

示例:

scala> (0 to 10).toList
res0: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> res0.partition(_ < 5)
res1: (List[Int], List[Int]) = (List(0, 1, 2, 3, 4),List(5, 6, 7, 8, 9, 10))