Можно ли orElse
составить два PartialFunction
с, когда первая функция имеет шаблон подстановки case _ =>
, который соответствует чему-либо, таким образом, фактически являясь полной функцией.
Например, учитывая
val pf1: PartialFunction[Int, String] = {
case 1 => "foo"
case 2 => "bar"
case _ => "wildcard"
}
val pf2: PartialFunction[Int, String] = {
case 3 => "baz"
case _ => "wildcard"
}
затем, из коробки
(pf1 orElse pf2)(3)
вывод wildcard
.Однако, предполагая, что мы не можем изменить pf1
, можем ли мы составить с pf2
, используя некоторые compfn
, такие, что мы получим
{
case 1 => "foo"
case 2 => "bar"
case 3 => "baz"
case _ => "wildcard"
}
, где (pf1 compfn pf2)(3)
выдаст baz
?