【发布时间】:2018-12-17 15:17:43
【问题描述】:
在 Scala 中,“部分函数”的概念与 F# 的 function 关键字允许我实现的非常相似。然而,Scala 的部分函数也允许通过orElse 方法进行组合,如下所示:
def intMatcher: PartialFunction[Any,String] = {
case _ : Int => "Int"
}
def stringMatcher: PartialFunction[Any,String] = {
case _: String => "String"
}
def defaultMatcher: PartialFunction[Any,String] = {
case _ => "other"
}
val msgHandler =
intMatcher
.orElse(stringMatcher)
.orElse(defaultMatcher)
msgHandler(5) // yields res0: String = "Int"
我需要知道是否有办法在 F# 中实现相同的合成功能。
【问题讨论】:
标签: scala f# partialfunction