源代码在哪里:“函数应用程序的优先级高于中缀运算符”[Haskell]

时间:2016-09-28 14:38:29

标签: haskell operator-precedence

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

以下是A Gentle Introduction To Haskell提到的一个例子:

  

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

Haskell 98 Report中有一节暗示了它:

  

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

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

2 个答案:

答案 0 :(得分:6)

您可以在EBNF中找到它here

exp^10 -> ...
        | fexp

fexp -> [fexp] aexp

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

答案 1 :(得分:6)

Haskell报告本身就是一个明确的引用,所以你找到的引用就足够了。

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

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

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