假设我有一个表达式如下(其中⨁
和⨂
是具有相同优先级但不具有相同关联性的二元运算符):
x ⨁ y ⨂ z
y
会属于⨁
还是⨂
,并基于什么标准?
答案 0 :(得分:1)
根据Edsgar Dijkstra的Shunting-yard algorithm,如果表达式中相邻的两个运算符具有相同的优先级,则表达式将根据第二个运算符的关联性消除歧义。
案例1: ⨂
是左关联的。表达式的计算结果为:
(x ⨁ y) ⨂ z
案例2: ⨂
是正确关联的。表达式的计算结果为:
x ⨁ (y ⨂ z)