val list = List.range(0, 10) // 偶数の場合に処理する部分関数 val ifEven: PartialFunction[Int, Int] = { case e if e % 2 == 0 => e * 2 } // 偶数以外の場合に処理する部分関数 val ifElse: PartialFunction[Int, Int] = { case e => e * 3 } // 部分関数を合成する. // 偶数だったらifEven関数を、それ以外ならifElse関数を適用するイメージ val proc = ifEven.orElse(ifElse) // 合成した部分関数を適用する. val rslt = list.collect(proc) println(rslt)