绑定优先级

关联性信息之后的数字描述了应用运算符的顺序。它必须始终在 09 之间。这通常被称为操作者的紧密程度。例如,考虑以下固定声明(在 base 中)

infixl 6 +
infixl 7 *

由于*具有比+更高的绑定优先级,我们将 1 * 2 + 3 视为

(1 * 2) + 3

简而言之,数字越大,运算符越接近其两侧的 parens。

备注

  • 函数应用程序总是比运算符高,所以无论运算符`op`及其固定性声明是什么,f x `op` g y必须被解释为 (f x)op(g y)

  • 如果在固定声明中省略了绑定优先级(例如我们有 infixl *!?),则默认为 9