55得票7回答
Scala中空的部分函数

对于偏函数,{ case ... => ... } 语法好像需要至少一个 case:scala> val pf: PartialFunction[String, String] = { case "a" => "b" } pf: PartialFunction[String...

24得票3回答
如何将X => Option[R]转换为PartialFunction[X,R]

只要我们有一个PartialFunction[X,R],将其转换为返回Option[R]的函数就非常容易,例如:def pfToOptf[X, R](f: PartialFunction[X,R])(x: X) = if (f.isDefinedAt(x)) Some(f(x)) ...

16得票2回答
组合部分函数

我有两个PartialFunctions f 和 g。它们没有副作用且执行速度很快。如何最佳地将它们组合成另一个Partial Function h,以便h.isDefinedAt(x)当且仅当f.isDefinedAt(x) && g.isDefinedAt(f(x))时成立...

14得票1回答
如何在Scala中轻松定义更复杂的PartialFunctions?

PartialFunctions 在Scala中,PartialFunction简而言之就是定义了一个isDefinedAt方法的函数。 使用一系列的case语句很容易定义偏函数。例如,一个微不足道的例子:scala> val pf: PartialFunction[Int, Uni...

14得票3回答
Scala的PartialFunction可以成为Monoid吗?

我认为PartialFunction可以成为Monoid。我的思路正确吗?import scalaz._ import scala.{PartialFunction => -->} implicit def partialFunctionSemigroup[A,B]:Semigr...

12得票3回答
在Java中实现Scala PartialFunction的最简单方法是什么?

为了实现互操作性,我需要从Java代码中传递一个Scala PartialFunction。对于Function(Function1等),我可以使用AbstractFunction进行子类化,并使用匿名类型,但是如何在PartialFunction上执行相同的操作呢? 在这种情况下,我希望它...

11得票3回答
在Scala中使用andThen链接PartialFunctions

让我们重复使用来自Daily Scala的示例:type PF = PartialFunction[Int,Int] val pf1 : PF = {case 1 => 2} val pf2 : PF = {case 2 => 3} ...

10得票3回答
orElse在PartialFunctions上如何工作

我在使用PartialFunction上的orElse方法时,遇到了非常奇怪的行为(至少对我来说是这样)。 在我的看来:val a = PartialFunction[String, Unit] { case "hello" => println("Bye") } val b:...

9得票2回答
部分函数应用在使用下划线时会过早地运行代码块

给定: def save(f: => Any)(run:Boolean) { if (run) { println("running f"); f } else println("not running f") } 我可以这样调用它: save("test")(true) ...

9得票1回答
如何将Scala Map转换为部分函数?

目前我使用以下代码片段: private val aMap = Map( "J" -> Journey, "T" -> Training ) def partialFunction = { case x if aMap isDefinedAt x => aMa...