问题标签 [infix-notation]

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 回答
146 浏览

scala - 使用中缀方法时需要括号吗?

非常简单的 Scala 问题。

为什么 1 + 2 的中缀方法不需要括号?

但是点方法呢?

0 投票
4 回答
607 浏览

haskell - Haskell 怎么知道哪个函数可以先运行?

我正在编写一种具有一些功能元素的自定义语言。当我卡在某个地方时,我通常会检查 Haskell 是如何做到的。不过,这一次,我想给 Haskell 举个例子,这个问题有点复杂。

事情是这样的。

假设我们有以下行

在哈斯克尔。显然,我们正在组合两个函数,a 和 b。但是如果函数 a 将另外两个函数作为参数呢?是什么阻止它在 . 和乙?您可以将它括在方括号中,但这不应该有什么不同,因为表达式仍然计算为一个函数,一个前缀一,并且前缀函数优先于中缀函数。

如果你这样做

例如,它将输出 25 而不是 17。

基本上我要问的是,当您希望中缀函数在前面的前缀函数之前运行时,Haskell 使用什么机制。

所以。如果“a”是一个以两个函数作为参数的函数。你如何阻止 Haskell 解释

作为“将 . 和 b 应用于函数 a”并将其解释为“组合函数 a 和 b”。

0 投票
2 回答
9674 浏览

java - java中缀计算器

我似乎无法在 try 块的内部进行堆栈,我的意思是通过在 try 块中使用堆栈来获得一个位数的计算器。try 块的内部给了我 emptystackexception

0 投票
2 回答
4144 浏览

algorithm - 评估前缀表达式的算法?

我有一个前缀表达式,它只有 4 个二元运算符(+、-、*、/)。评估此类表达式的直接方法是将其转换为后缀表达式,然后评估该表达式。但是我正在寻找一种直接执行此操作而不将其转换为任何其他表达式的算法?

0 投票
1 回答
776 浏览

java - 堆栈,队列和从文件中读取数学......奇怪的输出

你好,Stackoverflow,

我正在为后缀计算器创建中缀。计算器必须从文件中读取输入,然后使用堆栈和队列来创建后缀符号。我有我所有的代码来读取文件并在队列中创建后缀符号。我正在读取的文件包含:

(4>3)+(3=4)+2

这是我在队列中放入后缀符号的代码:

运行代码后,我打印输出结果是:

排队:52 51 51 52 50

我不知道 52、51 等是从哪里来的。它应该是“4>33=4+2+”(我想)我想知道是否有人能找出我的问题?或者给我一些关于如何解决它的提示?

0 投票
1 回答
20981 浏览

c - 使用链表实现后缀的中缀

我一直在尝试调试这个程序很长时间。当我输入表达式a + b - ca / b + c第一个运算符的优先级大于或等于第二个运算符时,它可以正常工作。但是对于像a - b / c第一个运算符的优先级低于第二个运算符这样的表达式,编译器会抛出一个断点。

关于如何改进我的编码的任何建议都会有所帮助。

0 投票
2 回答
7484 浏览

c - 使用堆栈中缀到后缀

我的讲师给了我一个任务,让我创建一个使用 Stack 将中缀表达式转换为后缀的程序。我已经制作了堆栈类和一些函数来读取中缀表达式。

但是这个名为 inToPos(char string[]) 的函数负责使用堆栈将字符串 inFix 中的 inFix 表达式转换为字符串 postFix 中的 post fix 表达式,它正在创建一个断点。你们能帮助我并告诉我我做错了什么吗?

这些是我的代码,非常需要你的帮助.. :)

请注意,inToPos 函数是使用以下算法生成的:

  • 从左到右扫描中缀字符串。
  • 初始化一个空栈。
  • 如果扫描的字符是操作数,则将其添加到 Postfix 字符串。如果扫描的字符是运算符并且堆栈为空,则将字符推入堆栈。
  • 如果扫描到的字符是运算符且堆栈不为空,则将字符的优​​先级与堆栈顶部的元素(topStack)进行比较。如果 topStack 的优先级高于扫描的字符,则弹出堆栈,否则将扫描的字符推入堆栈。只要 stack 不为​​空并且 topStack 优先于字符,就重复此步骤。重复此步骤,直到字符被扫描。
  • (扫描完所有字符后,我们必须将堆栈可能包含的任何字符添加到 Postfix 字符串。)如果堆栈不为空,则将 topStack 添加到 Postfix 字符串并弹出堆栈。只要堆栈不为空,就重复此步骤。
  • 返回后缀字符串。
0 投票
3 回答
6591 浏览

function - 如何在 Haskell 中定义中缀函数?

我想将一个函数定义为中缀,这样用户就不必手动用反引号包围该函数来调用它。具体来说,我正在编写一个类似 DSL 的函数,该函数接受 Rank 和 Suit 并构造扑克牌记录:

我相信of它被保留为case ... of表达式的语法,所以我必须将它重命名为of', .of,+of等。

0 投票
1 回答
7659 浏览

scala - 如何制作右结合中缀运算符?

我有一个关联操作>>。问题是它的成本线性地取决于它的左操作数的大小。因此,由类似的一系列n应用形成的表达式>>

它在 方面具有二次成本n,因为默认情况下中缀运算符是左关联的。如何使其具有右关联性,以使这种表达式的成本保持线性关系n

0 投票
1 回答
233 浏览

haskell - 用前缀符号重写单子计算

我试图弄清楚如何用前缀符号重写一元计算(不是为了真正的实际目标,只是为了研究),但是一个 lambda 看不到另一个参数的问题

所以给出一个工作示例

重写的一个显示没有看到其他 lambda 的参数的错误

但是如果我让最后一个不使用它(通过将 x 替换为 y),则计算开始工作

那么前缀符号的完全重写在技术上是可能的吗?或者访问其他 lambdas 参数的这个属性是中缀符号独有的?