Note carefully the following syntax restrictions, which serve to remove potential ambiguity associated with prefix operators.
( must not be separated by
any intervening layout-text. Thus
point (X,Y,Z)
is invalid syntax.
(,
this (
must be separated from the operator by at least one layout-char.
Thus
:-(p;q),r.
(where :- is the prefix operator) is invalid syntax.
The system would try to interpret it as the compound term:
,
/ \
:- r
|
;
/ \
p q
That is, it would take :- to be a functor of arity 1.
However, since the arguments of a compound term are required
to be expressions of precedence below 1000, this interpretation
would fail as soon as the ; (precedence 1100) was
encountered.
In contrast, the term:
:- (p;q),r.
is valid syntax and represents the following compound term:
:-
|
,
/ \
; r
/ \
p q