kek*_*coh 2 functional-programming scala
是否有完成部分功能的标准方法PartialFunction[A, B]?像这样的东西:
completePartialFunction(pf: PartialFunction[A, B], z: B): A => B
Run Code Online (Sandbox Code Playgroud)
或者
completePartialFunction2(pf: PartialFunction[A, B], f: A => B): A => B
Run Code Online (Sandbox Code Playgroud)
您可以使用lift方法 on PartialFunction,返回Option[B]. 因此,当未为输入定义函数时,None将返回。您可以在scaladocs 中找到更多信息。
当你使用的是在我脑海中的其他解决方案是猫或scalaz。然后,您可以检查是否为参数定义了函数,如果没有,empty则从Monoid[B]您应该(可能隐式地)传递给 的 返回completePartialFunction。
是的,其实很简单:
def complete[A, B](pf: PartialFunction[A, B])(f: A => B): A => B =
pf.applyOrElse(_, f)
Run Code Online (Sandbox Code Playgroud)