问题标签 [partialfunction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 使用 orElse 的 PartialFunctions 组合的 MatchError
在为 Actor 编写 Specs2 规范时,我MatchError
对几个部分函数的组合感到有些困惑。
一个最小的例子:
导致输出:
这完全让我困惑。如果对于一个给定的输入isDefinedAt
组成的两个偏函数返回true
,我希望我也可以将apply
它返回到相同的输入。
scala - Is there something like Map.keySet for a partial function in scala?
More specifically, I have:
I use it like this:
Of course, this is somewhat simplified, but the report function is necessary.
Some history: I first had it implemented using Map
but then I changed it to PartialFunction
in order to support the following override def myMap: MethodMap = if (one) map1 else map2
.
Any suggestion to refactor my code to support everything is also appreciated.
regex - Scala正则表达式+部分函数不适用性能
假设我有如下代码:
pf
有方法isDefinedAt
和apply
. 正则表达式搜索是否会被评估一次,isDefinedAt
或者这项工作将被完成两次?
如果一次,如何将参数g1, g2
传递给apply
方法?
scala - Scala中莫名其妙的理解结果
我理解 for-expression 被翻译成 map 和 flatMap。但我发现了一些我无法解释的东西,需要你的帮助。以下是两个玩具示例:
Q1:为什么 Some(1) 映射到 0 ?我期待列表(0),
update1:
感谢@marios 的评论,这更奇怪。
for(None <- List(Some(1), None) ) yield None
返回List(Some(1), None)
。
update2:
有人说它是一个变量,但在 IDE 中,它确实链接到一个None
对象。
我使用 IntelliJ 将上述 for 表达式自动翻译为 map 表达式:
Q2:这个映射表达式的错误是预期的,而第一个问题中的 for 表达式没有给我这个错误。为什么他们得到不同的计算?
scala - Scala:参数中带有 PartialFunction 的重载函数
我在尝试使用部分函数重载函数时遇到了一个奇怪的问题:
我已将此代码粘贴到 REPL 中,但出现了一个奇怪的错误:
我在网上查了一下,发现这个错误有不同的解释,但没有人谈论重载。据我了解, PartialFunction 扩展为匿名函数。所以在这种情况下,这将导致类似:
但是一旦粘贴到 REPL 中,我就会收到另一个错误:
这很好,因为没有签名在参数中采用匿名函数。那么我错过了什么?我是否错误地扩展了部分函数?
感谢您的任何帮助 !
编辑
我刚刚发现问题可能来自关于应该调用哪种方法的歧义:
其次,我在这里发现了一个有趣的类似问题
scala - Scala PartialFunction Stackoverflow
我正在开发一个名为 PySpark Cassandra 的 Scala / Python 库。在其中,例如保存数据时,我必须以pickle格式处理对象序列化的Python对象。
我有一份因stackoverfow而失败的工作:
启动此跟踪的代码是:
位于https://github.com/TargetHolding/pyspark-cassandra/blob/master/src/main/scala/pyspark_cassandra/Pickling.scala#L118(更多细节和上下文)。
UUIDHolder 类定义为:
(这个类的奇怪构造是为了与 py4j 兼容以及 Python 如何腌制 UUID 对象)
但是我对 Scala 以及 case 块和 PartialFunctions 之间的关系的理解是相当有限的。特别是我的案例块与https://github.com/scala/scala/blob/2.10.x/src/library/scala/PartialFunction.scala#L166的关系(我在 Scala 2.10.5 上运行)
使我的情况恶化:) 我很难始终如一地重现错误。它发生在不同节点上的 Spark 作业中,但并非总是如此。我有一个数据集,在保存该数据集时存在问题。但我无法将其固定到数据集中的特定记录。
在任何情况下,我都不希望使用此代码出现 StackOverflow。任何帮助将不胜感激!
scala - 将隐式参数传递给 Future.recover
我想将隐式参数传递给我使用的部分recover
函数Future
。
scala - 在元组字段上应用偏函数,维护元组结构
我有一个PartialFunction[String,String]
和一个Map[String,String]
。我想在地图值上应用部分函数并收集它适用的条目。即给出:
我想以某种方式结合_._2
并pf
能够做到这一点:
到目前为止,我得到的最好的是:
有没有更好的办法?
scala - PartialFunction 的适配器
我正在尝试提出一个组合器,它可以让我做这样的事情:
基本上,我有一个Map[String, String]
, 并且想将它用作带有PartialFunction
两个参数的 a - 忽略第二个元素,并将第一个元素用作键。
上面的方法有效,但我不喜欢pf
基本上被评估两次的事实(可能没有办法解决这个问题),而且它不是“优雅的”......我想知道我是否有某种组合器不知道那会让我做类似的事情{ _._1 } andThen pf
。显然,最后一次尝试不起作用,因为它的结果总是被定义的,并且会在不存在的键上失败,我只是用它来说明我正在寻找的解决方案的理想外观。
想法,有人吗?
scala - 具有部分应用函数的变量参数
我对以下代码有编译问题。
该示例的灵感来自 com.agical.gsl,它是 swt 的 scala 适配器。我假设它在 scala 2.8 之前使用了 scala 功能。
该错误too many arguments for method apply: (v1: Seq[Int])Seq[Int] in trait Function1
与变量参数如何传递给部分应用的函数有关。
感谢您提供的任何提示。