假设我有一个带有一些函数的列表和一个带有布尔值的列表,它的作用类似于配置列表,并且大小相等。
val conf = List(true, false, true)
val funcs = List(f1, f2, f3)
通过合并它们,结果应如下所示:
val res = List(f1, f3)
我很确定这可以通过Scalaz中的Applicative builder来完成。
答案 0 :(得分: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)