Haskell “的来源是什么?”;函数应用程序的优先级高于中缀运算符“;[哈斯克尔]

Haskell “的来源是什么?”;函数应用程序的优先级高于中缀运算符“;[哈斯克尔],haskell,operator-precedence,Haskell,Operator Precedence,我正在学习Haskell中的运算符优先级。网上有几个地方提到函数应用程序的优先级高于运算符,但我找不到确切的来源 这里有一个这样的例子: 函数应用程序的优先级高于任何中缀运算符 本手册中有一节提到: 普通构造函数应用程序的优先级高于中缀构造函数应用程序 确切的来源在哪里?我希望它包含在Haskell 98报告中,也许我没有正确阅读。您可以在EBNF中找到它: exp^10 -> ... | fexp fexp -> [fexp] aexp 这基本上意味着函数应用程

我正在学习Haskell中的运算符优先级。网上有几个地方提到函数应用程序的优先级高于运算符,但我找不到确切的来源

这里有一个这样的例子:

函数应用程序的优先级高于任何中缀运算符

本手册中有一节提到:

普通构造函数应用程序的优先级高于中缀构造函数应用程序

确切的来源在哪里?我希望它包含在Haskell 98报告中,也许我没有正确阅读。

您可以在EBNF中找到它:

exp^10 -> ...
        | fexp

fexp -> [fexp] aexp
这基本上意味着函数应用程序的优先级为10,高于允许给操作员的任何优先级。

Haskell报告本身就是一个明确的参考,因此您找到的引用就足够了

你也可以在语法中找到相同的信息

fexp -> [fexp] aexp
exp_10 -> ... | fexp

您可以看到函数应用程序的优先级为“10”,而所有中缀/前缀运算符的优先级均为9或更低。

函数应用程序是一种特殊情况,但通常,您可以使用
:i
命令在
ghci
上右键检查此项。例如,
:i(.)
会告诉函数组合与优先级等于9(
infixr 9
)的右关联。是的,尽管OP中的特定报告引用似乎是指类型运算符而不是值级别的中缀运算符。是的,我注意到。。。不过,这些信息可能对OP最有帮助,而不是对我。