2

假设我有一个带有一些函数的列表和一个带有布尔值的列表,它就像一个配置列表,并且大小是相等的。

val conf = List(true, false, true)
val funcs = List(f1, f2, f3)

通过合并它们,结果应如下所示:

val res = List(f1, f3)

我很确定这可以使用 Scalaz 中的 Applicative 构建器来完成。

4

1 回答 1

3

我必须指出,在没有 Scalaz 的情况下解决它非常简单:

scala> val a = List(true, false, true)
a: List[Boolean] = List(true, false, true)

scala> val b = List(1,2,3)
b: List[Int] = List(1, 2, 3)

scala> a.view.zip(b).filter(_._1).map(_._2).force
res3: Seq[Int] = List(1, 3)
于 2013-05-23T09:50:23.600 回答