二項演算子 #, $, @ の優先順位及び結合の方向が、次の表のように定義されている。
┌───┬────┬─────┐
│演算子│優先順位│結合の方向│
├───┼────┼─────┤
│ # │ 高 │ 右から左 │
├───┼────┼─────┤
│ $ │ 中 │ 右から左 │
├───┼────┼─────┤
│ @ │ 低 │ 左から右 │
└───┴────┴─────┘
式 a @ b $ c @ d # e # f と同じ意味の式を、@〜Dの中から選べ。
@ (a @ b) $ (((c @ d) # e) # f)
A ((a @ b) $ c) @ (d # (e # f))
B a @ ((b $ c) @ ((d # e) # f))
C (a @ (b $ c)) @ (d # (e # f))
D (a @ ((b $ c) @ d)) # (e # f)
C
まず、優先順位が高い #演算子からカッコでくくる。結合の方向は右から左であるから
a @ b $ c @ d # e # f
= a @ b $ c @ d # (e # f)
= a @ b $ c @ (d # (e # f))
次に、優先順位が中の $演算子をカッコでくくる。結合の方向は右から左であるから
a @ b $ c @ (d # (e # f))
= a @ (b $ c) @ (d # (e # f))
最後に優先順位が低い @演算子をカッコでくくる。
結合の方向は左から右であるから
a @ (b $ c) @ (d # (e # f))
= (a @ (b $ c)) @ (d # (e # f)) となる。
W−3 | 目次 | W−5 |