Author(s): Daniel Cabeza, Manuel Hermenegildo.
Version: 1.11#222 (2004/5/24, 13:8:7 CEST)
Version of last change: 1.11#171 (2004/2/3, 21:45:8 CET)
These built-in predicates are extra-logical. They treat uninstantiated variables as objects with values which may be compared, and they never instantiate those variables. They should not be used when what you really want is arithmetic comparison or unification.
The predicates make reference to a standard total ordering of terms, which is as follows:
'.'/2.
For example, here is a list of terms in standard order:
[ X, -1.0, -9, 1, bar, foo, [1], X = Y, foo(0,2), bar(1,1,1) ]
term_compare)term_compare)
General properties: Term1 == Term2
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
Term1==Term2 is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Usage: Term1 == Term2
Term1 and Term2 are strictly identical.
Usage: Term1 \== Term2
Term1 and Term2 are not strictly identical.
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
Term1\==Term2 is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Usage: @<(Term1, Term2)
Term1 precedes the term Term2 in the standard order.
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
@<(Term1,Term2) is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Usage: @=<(Term1, Term2)
Term1 precedes or is identical to the term Term2 in the standard order.
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
@=<(Term1,Term2) is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Usage: @>(Term1, Term2)
Term1 follows the term Term2 in the standard order.
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
@>(Term1,Term2) is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Usage: @>=(Term1, Term2)
Term1 follows or is identical to the term Term2 in the standard order.
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
@>=(Term1,Term2) is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
compare(Op, Term1, Term2)
Op is the result of comparing the terms Term1 and Term2.
Usage:
Op is an atom.
(basic_props:atm/1)
Term1 is any term.
(basic_props:term/1)
Term2 is any term.
(basic_props:term/1)
Op is an atom.
(basic_props:atm/1)
Term1 is any term.
(basic_props:term/1)
Term2 is any term.
(basic_props:term/1)
Op is an element of [=,>,<].
(basic_props:member/2)
Term1 is any term.
(basic_props:term/1)
Term2 is any term.
(basic_props:term/1)
Term1 is not further instantiated.
(basic_props:not_further_inst/2)
Term2 is not further instantiated.
(basic_props:not_further_inst/2)
compare(Op,Term1,Term2) is side-effect free.
(basic_props:sideff/2)
This predicate is understood natively by CiaoPP.
(basic_props:native/1)
Go to the first, previous, next, last section, table of contents.