问题标签 [custom-operator]

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.

0 投票
1 回答
146 浏览

f# - 何时使用自定义运算符的标准

我目前正在阅读 Real-World Functional Programming,它简要提到了 in-fix 运算符是自定义运算符的主要好处之一。在 F# 中何时使用或不使用自定义运算符是否有任何标准?我正在寻找与此等效的答案

作为参考,这里是@JohnPalmer 从这里引用的引用:

3.8 算子定义</p>

避免在面向 F# 的库设计中定义自定义符号运算符。

自定义运算符在某些情况下是必不可少的,并且在大量实现代码中是非常有用的符号设备。对于库的新用户,命名函数通常更易于使用。此外,自定义符号运算符可能难以记录,并且由于 IDE 和搜索引擎的现有限制,用户发现查找运算符的帮助更加困难。

因此,通常最好将您的功能发布为命名函数和成员。

0 投票
1 回答
531 浏览

java - 在 RapidMiner 进程中导入自定义类

我在 java 中制作了一个自定义 Stemmer,我需要一个操作符来处理这段代码。如何在 rapidminer 5 中导入自定义 Java 类?

谢谢!!!

0 投票
1 回答
127 浏览

c++ - 自定义 == 运算符,哪边有关系吗?

JSON Spirit有一个方便的operator==

该变量lhs看起来像许多其他示例中熟悉的“左侧”,这意味着如果该运算符所分配的内容不在左侧,这将无法按预期工作。

那是对的吗?如果是这样,为什么?

无论哪种情况,请引用标准。

0 投票
1 回答
591 浏览

generics - 通用自定义运算符函数:一个糟糕的 * 指令的奇怪案例

我在 Swift 中使用泛型和自定义运算符时遇到了这个问题。在下面的代码片段中,我引入了两个新的前缀运算符,∑和∏,然后将它们的前缀函数分别实现为向量和和乘积。为了不必分别为所有整数和浮点类型实现这些和类似的功能,我定义了两个协议:Summable(需要 + 实现)和 Multiplicable(需要 * 实现)。此外,我为 SequenceType 参数实现了两个函数,例如,它们适用于 Array 和 Rage 类型。最后,您可以从代码片段末尾的 println 调用中看到,除了 ∏(1...100) 之外,这一切都运行得很好。在这里,程序因 EXC_BAD_INSTRUCTION 而崩溃,没有什么可继续的了。请注意 ∑(1...100) 有效,即使它以相同的方式实现。实际上,如果我更改该行中的初始值return reduce(s, 1, {$0 * $1})到 0 比程序完成没有错误,尽管调用 ∏ 时输出错误。

所以,这一切都归结为使用 0 或 1 作为初始值!?当违规行中的代码被解压成几行时,很明显崩溃发生在$0 * $1. 另请注意,{$0 * $1}{$0 + $1}应该能够直接传递 + 和 * 运算符函数,而不是闭包。唉,这冒犯了编译器:“不允许部分应用泛型方法”。

有任何想法吗?将 1(或任何非零 Int)换成 0 怎么会导致崩溃?为什么这只发生在乘法范围内,而具有 0 或 1 初始值的加法范围工作正常?

编辑:虽然对我来说相当尴尬,但我在这段代码中犯的错误对你的编程眼光进行了一次可爱的测试。在阅读下面马丁的答案之前,看看你是否能弄清楚。当你这样做时,你会对自己感觉良好。(然而,我可能需要寻找另一个职业。)

0 投票
1 回答
296 浏览

swift - 为什么 Nil 合并运算符是右关联的?

它不应该是左关联吗?

我认为 let a = b ?? c ?? d 分组 let a = (b ?? c) ?? d 不像 let a = b ?? (c ?? d)

但它被声明为右结合体。我是否误解或错过了什么?

0 投票
2 回答
247 浏览

swift - 如何只接受在 Swift 中使用泛型的运算符的数字?

我正在尝试为数字创建一个运算符。例如,将数字增加 10 的运算符。

这是我写的代码:

+=我的接线员有错误。它需要数字操作数。所以我这样做了:

但它编译失败。有人有什么想法吗?

0 投票
3 回答
1225 浏览

swift - Swift:自定义运算符来更新字典值

有没有一种优雅的方法来制作更新字典值的自定义运算符?

更具体地说,我想要一个前缀运算符,它增加与给定键对应的整数值:

这使用函数式方式是可行的。例如,要计算数组中元素的频率:

但我正在尝试使用自定义运算符做同样的事情

0 投票
1 回答
761 浏览

swift - 如何在 swift 中实现自定义运算符 []

我用 swift 编写了一个简单的队列类。它是由一个数组实现的。现在我希望它的性能更像内置数组。所以我需要实现[]运算符但失败了。有人帮忙吗?

0 投票
2 回答
57 浏览

c++ - 自定义结构与 int 交互?

我正在尝试创建一个可以与之交互的结构,就好像它是一个int. 但是,当我尝试为其赋值时,它会在编译时引发以下错误:

为什么它会抛出这个错误,即使我让它的=操作符来处理将 an 设置int32为一个const int值?

这是我最好的尝试的源代码int32

另外,请不要只推荐我使用int32_t; 我自己struct做是有原因的(否则我只是习惯于int32_t开始;)

0 投票
1 回答
494 浏览

python - 用在张量流中具有变量依赖性的自定义操作替换图中的节点

我正在尝试用执行相同操作的自定义操作替换图中完成的计算。

假设该图有一个常量A和权重变量W,我创建了自定义操作来获取这两个输入并进行整个计算(除了权重更新的最后一步):

导入图def后有两个W,一个来自原图def,一个在导入图中。当我们运行训练操作时,自定义操作最终会读取旧W的,而新W的会更新。结果,梯度下降最终未能做正确的事情。

问题是 custom_op 的实例化需要输入权重张量W。新W的只有在导入后才知道。而且,导入需要自定义操作。如何解决这个问题?