いくつかの関数を含むリストと、構成リストのように機能するブール値を含むリストがあり、サイズが等しいとしましょう。
val conf = List(true, false, true)
val funcs = List(f1, f2, f3)
それらをマージすると、結果は次のようになります。
val res = List(f1, f3)
これは Scalaz の Applicative builder でできると確信しています。
注意しなければならないのは、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)