succeeds if the result of comparing terms Term1 and Term2 is Order
The standard order is described in ref-lte-cte. Note that the standard order is not, in general, well defined for cyclic terms.
The goal (A) is equivalent to (B):
| ?- compare(=, Term1, Term2). (A)
|?- (Term1 == Term2). (B)
The following query succeeds, binding R to
<, because 1 comes
before 2 in the standard order.
| ?- compare(R, 1, 2). R = <
If Order is supplied, and is not one of
then an error is thrown, as follows.
These errors were added in SICStus Prolog 4.3 for alignment with the ISO Prolog standard. Previous versions of SICStus Prolog simply failed instead of reporting an error.