繫結優先順序
關聯性資訊之後的數字描述了應用運算子的順序。它必須始終在 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
。