绑定优先级
关联性信息之后的数字描述了应用运算符的顺序。它必须始终在 0
和 9
之间。这通常被称为操作者的紧密程度。例如,考虑以下固定声明(在 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
。