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.