關聯性
infixl
vs infixr
vs infix
描述了 parens 將被分組的哪一方。例如,考慮以下固定宣告(在 base 中)
infixl 6 -
infixr 5 :
infix 4 ==
infixl
告訴我們 -
已經離開了關聯,這意味著 1 - 2 - 3 - 4
被解析為
((1 - 2) - 3) - 4
infixr
告訴我們:
具有正確的關聯性,這意味著 1 : 2 : 3 : []
被解析為
1 : (2 : (3 : []))
infix
告訴我們 ==
不能在沒有我們的情況下使用,包括括號,這意味著 True == False == True
是一個語法錯誤。另一方面,True == (False == True)
或 (True == False) == True
很好。
沒有明確的固定宣告的運算子是 infixl 9
。