|Previous||Precedence and Ambiguity|
Operators are always evaluated in the following order:
|1:||( ), [ ], functions, =, #|
|2:||and, or, &, ||
|3:||if, iff, ->, <->|
|4:||forall, exists, A, E|
Parentheses can be used to override precedence.
Operators on the same line have equal precedence. Sentences with operators with equal precedence are ambiguous unless parentheses are used to specify evaluation order.
For example,try the following on
the Blocks Abundant world:
Square(a) or Square(h) and Square(c)
This form is not allowed because it is ambiguous and Tilomino cannot determine which part of the expression should be evaluated first.
Test the difference between
(Square(a) or Square(h)) and Square(c)
Square(a) or (Square(h) and Square(c))