YAP 7.1.0

The next routines provide a set of commonly used utilities to manipulate terms. More...
The next routines provide a set of commonly used utilities to manipulate terms.
Most of these utilities have been implemented in C
for efficiency They are available through the use_module(library(terms))
command
class cyclic_term/1 
cyclic_term( + T )
cyclic_term(? Term)
Succeeds if the graph representation of the term has loops Say, The representation of a term X
that obeys the equation X=[X]
term has a loop from the list to its head
Succeed if the argument Term is a cyclic term
class term_subsumer/3 
term_subsumer(? T1, ? T2, ? Subsumer)
Succeed if Subsumer unifies with the least general generalization over T1 and T2
class new_variables_in_term/3 
new_variables_in_term(+_CurrentVariables_, ? Term, _Variables_)
new_variables_in_term(+ Variables,? Term,  OutputVariables)
Unify Variables with the list of all variables of term Term that do not occur in CurrentVariables That is:
Variables = vars(Term)  CurrentVariables
= The variables occur in the order of their first appearance when traversing the term depthfirst, lefttoright
Unify OutputVariables with all variables occurring in Term that are not in the list Variables
class subsumes/2 
subsumes(? Term1, ? Term2)
Succeed if Term1 subsumes Term2 Variables in term Term1 are bound so that the two terms become equal
class subsumes_chk/2 
subsumes_chk(? Term1, ? Term2)
Succeed if Term1 subsumes Term2 but does not bind any variable in Term1
class term_hash/4 
term_hash(+ Term, + Depth, + Range, ? Hash)
Unify Hash with a positive integer calculated from the structure of the term The range of the positive integer is from 0
to, but not including, Range If Depth is 1
the whole term is considered Otherwise, the term is considered only up to depth 1
, where the constants and the principal functor have depth 1
, and an argument of a term with depth I has depth I+1
class term_hash/2 
term_hash(+ Term, ? Hash)
If Term is ground unify Hash with a positive integer calculated from the structure of the term Otherwise the argument Hash is left unbound The range of the positive integer is from 0
to, but not including, 33554432
class unifiable/3 
unifiable(? Term1, ? Term2,  Bindings)
Succeed if Term1 and Term2 are unifiable with substitution Bindings
class variables_within_term/3 
variables_within_term(+ Variables,? Term,  OutputVariables)
Unify OutputVariables with the subset of the variables Variables that occurs in Term
class variant/2 
variant(? Term1, ? Term2)
Succeed if Term1 and Term2 are variant terms