问题标签 [infix-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 投票
2 回答
87 浏览

package - 为什么我将代码包装在一个包中后,列表中只有两个元素不再被识别?

我在 Lisp 中弄湿了我的脚,defpackage并开始了一个可耻的开始,即一个我无法开始理解的错误。

下面的代码是尝试创建一种子语言来对向量执行中缀操作。我想将它用于涉及一些线性代数的项目。

我的代码的“肉”是parse-infix. 此函数找到具有最高优先级的运算符,调用apply-op以替换所述运算符及其操作数,operator (operand, operand)从而缩小列表,并迭代直到列表仅包含结果。支持的运算符有四个规则、相等(将结果绑定到 Lisp 符号)和向量连接。

这是代码,疣和所有内容:

这是障碍。这些功能似乎正在工作......

...但是当我离开包时,连接(&)运算符突然“死”:

我试图跟踪包的功能并注意到,无论出于何种原因,当我离开infix包时,'& 不再被识别为运算符。我不知道为什么会这样。任何输入表示赞赏。

PS。许多人可能已经注意到,这一切都在 Clozure Common Lisp 中。

0 投票
1 回答
1344 浏览

f# - 错误:表达式中出现意外的中缀运算符,关于成功编译的前缀运算符

玩弄中缀运算符后,我对以下内容感到惊讶:

val (>~~~) : 字符串 -> 字符串)

和:

意外的中缀运算符

更改前缀运算符的第一个字符(!~~~例如)修复它。我得到一个中运算符意外的错误是相当奇怪的。悬停显示定义为string -> string

我对这个错误并不感到惊讶,F# 要求 (iirc) 前缀运算符的第一个字符本身必须是预定义的前缀运算符之一。但是为什么它编译得很好,当我使用它时,编译器会抱怨?

更新:F# 编译器似乎知道在其他情况下,当我在运算符定义中使用无效字符时,它会显示“无效的运算符定义。前缀运算符定义必须使用有效的前缀运算符名称。”

无效的运算符定义。

0 投票
1 回答
1196 浏览

haskell - 斜杠在haskell中是什么意思?

我正在学习 Haskell,正在准备期中考试。我目前正在查看一个关于类型推断的问题的测试测验。有些问题包含正斜杠,我不知道它们代表什么。目标是通过查看函数的变量来确定函数的类型。以下是我应该找到的问题类型的一些示例:

我用谷歌搜索没有运气,正斜杠是什么意思?

0 投票
2 回答
1525 浏览

postfix-notation - 无法将“int”转换为“节点 *”

我正在阅读 C++ 源代码,将中缀转换为后缀我正在使用 turbo C++

// 我得到 .. 无法将 'int' 转换为 'node *' ...

谁能告诉我为什么会这样。以及如何解决它。

完整的源代码在这里

0 投票
0 回答
654 浏览

parsing - 使用二进制前缀、中缀和后缀运算符解析表达式

是否可以解析可以包含二进制前缀、二进制中缀和二进制后缀运算符(假设所有符号都不同)的表达式(没有歧义),并且它们之间具有优先级?例如:

Thena等于 5,因为=它的优先级低于后缀post+运算符,并且b14. 我知道您可以使用运算符优先级解析或分流场来解析中缀表示的表达式,但这个问题对我来说似乎要复杂得多。

编辑:

允许使用括号,并且运算符的前后变化具有与中缀相同的优先级。

我想推出一个手写算法。

编辑2:

我所说的优先级是指消耗多少。例如这个:

可能导致这些 AST-s:

(第二个是我在这种情况下需要的)。我不能真正使用现有的解析器生成器或操作数的固定语法,因为运算符是动态加载的。

0 投票
3 回答
385 浏览

python - 对象列表上的python中缀运算符

我在 jupyter notebook 中使用了一个数学优化库(PICOS)。

在 PICOS 中,符号//&是用于垂直和水平连接的中缀运算符,用于从块中构建矩阵。请注意,我不能使用numpy.bmat,因为这些块不是 numpy 对象。

例如,如果我有一个块列表[A,B,C],我将通过将它们与符号水平连接来形成一个矩阵A & B & C。当列表包含数百个符号并且我无法手动构建矩阵时,就会出现问题。有没有一种简单的方法在列表中的每个符号之间插入中缀?

0 投票
1 回答
298 浏览

r - R中的二元运算符/中缀函数是通用的吗?以及如何利用?

来自http://adv-r.had.co.nz/Functions.htmlR:像 %in% 这样的运算符是什么,我如何了解它们?我了解到可以使用%-sign 编写自己的“二元运算符”或“中缀函数”。一个例子是

但是,如果它们来自预定义的类,是否可以以通用方式使用它们(这样在某些情况下我不必使用%-sign)?例如,如果他们来自班级,x + y则应给予。6prod

0 投票
0 回答
237 浏览

r - 在 R 中创建中缀函数

我正在阅读 Hadley 的 Advanced R。其中一项练习要求我们创建自己的中缀函数。我读过在 R 中创建中缀 %between% 运算符,但我不确定如何创建中缀函数:

%`%

我能够使用其他运算符在 R 中创建中缀函数(即,之间的空格%%带有重音或重音的重音为:

我想我不知道如何为我试图用 ` 创建的中缀函数应用转义序列(即重音或重音)

0 投票
1 回答
169 浏览

parsing - 绕过 Agda 中 Mixfix 运算符的空白要求?

有没有办法告诉 Agda 某个字符标志着一个新令牌的开始?例如,我有以下(带有花哨的 unicode 括号):

我可以用作

但我真正想要的是将它用作

如果我这样做,Agda 会认为它是一个标识符,并给出一个不在范围内的错误。有没有解决的办法?

0 投票
2 回答
240 浏览

r - 当`function`是中缀运算符时,如何在包内使用`package::function()`?

根据 H. Wickham 的书R Packages,在 Package Metadata 一章中,关于如何添加包依赖项,Hadley 指出了使用语法显式引用外部函数的充分理由package::function()

在此处添加包依赖项可确保安装它。但是,这并不意味着它将与您的包(即 library(x))一起附加。最佳实践是使用语法 package::function() 显式引用外部函数。这使得很容易识别哪些函数存在于您的包之外。这在您将来阅读代码时特别有用。

来自R 包 | 包元数据

但是当function是中缀运算符时怎么办呢?例如,似乎我做不到1:10 magrittr::"%>%" sqrt?并且在这里采用函数样式会违背使用管道运算符的目的......不是吗?