Haskell “的来源是什么?”;函数应用程序的优先级高于中缀运算符“;[哈斯克尔]
我正在学习Haskell中的运算符优先级。网上有几个地方提到函数应用程序的优先级高于运算符,但我找不到确切的来源 这里有一个这样的例子: 函数应用程序的优先级高于任何中缀运算符 本手册中有一节提到: 普通构造函数应用程序的优先级高于中缀构造函数应用程序 确切的来源在哪里?我希望它包含在Haskell 98报告中,也许我没有正确阅读。您可以在EBNF中找到它:Haskell “的来源是什么?”;函数应用程序的优先级高于中缀运算符“;[哈斯克尔],haskell,operator-precedence,Haskell,Operator Precedence,我正在学习Haskell中的运算符优先级。网上有几个地方提到函数应用程序的优先级高于运算符,但我找不到确切的来源 这里有一个这样的例子: 函数应用程序的优先级高于任何中缀运算符 本手册中有一节提到: 普通构造函数应用程序的优先级高于中缀构造函数应用程序 确切的来源在哪里?我希望它包含在Haskell 98报告中,也许我没有正确阅读。您可以在EBNF中找到它: exp^10 -> ... | fexp fexp -> [fexp] aexp 这基本上意味着函数应用程
exp^10 -> ...
| fexp
fexp -> [fexp] aexp
这基本上意味着函数应用程序的优先级为10,高于允许给操作员的任何优先级。Haskell报告本身就是一个明确的参考,因此您找到的引用就足够了
你也可以在语法中找到相同的信息
fexp -> [fexp] aexp
exp_10 -> ... | fexp
您可以看到函数应用程序的优先级为“10”,而所有中缀/前缀运算符的优先级均为9或更低。函数应用程序是一种特殊情况,但通常,您可以使用
:i
命令在ghci
上右键检查此项。例如,:i(.)
会告诉函数组合与优先级等于9(infixr 9
)的右关联。是的,尽管OP中的特定报告引用似乎是指类型运算符而不是值级别的中缀运算符。是的,我注意到。。。不过,这些信息可能对OP最有帮助,而不是对我。