compare/3

Synopsis

compare(-Order, +Term1, +Term2)

succeeds if the result of comparing terms Term1 and Term2 is Order

Arguments


Order one of [<,=,>]

=
if Term1 is identical to Term2,
<
if Term1 is before Term2 in the standard order,
>
if Term1 is after Term2 in the standard order.

Term1 term

Term2 term

Description

The standard total order is as follows. For further details see ref-lte-cte-sot.

     
     variables @< database references @< numbers @< atoms @< compound 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 <, >, or =, compare/3 simply fails.

See Also

@</2, @=</2, @>/2, @>=/2, QP_compare() ref-lte