关联性
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
。