Templates
Description
name_singleton_vars(Term) binds each singleton variable appearing in Term with a term of the form ’$VARNAME’(’_’). Such a term can be output by write_term/3 as a variable name (section 7.14.6).
Errors
None.
Portability
GNU Prolog predicates.
Templates
Description
name_query_vars(List, Rest) for each element of List of the form Name = Var where Name is an atom and Var a variable, binds Var with the term ’$VARNAME’(Name). Such a term can be output by write_term/3 as a variable name (section 7.14.6). Rest is unified with the list of elements of List that have not given rise to a binding. This predicate is provided as a way to name the variable lists obtained returned by read_term/3 with variable_names(List) or singletons(List) options (section 7.14.1).
Errors
List is a partial list | instantiation_error | |
List is neither a partial list nor a list | type_error(list, List) | |
Rest is neither a partial list nor a list | type_error(list, Rest) | |
Portability
GNU Prolog predicate.
Templates
Description
bind_variables(Term, Options) binds each variable appearing in Term according to the options given by Options.
Variable binding options: Options is a list of variable binding options. If this list contains contradictory options, the rightmost option is the one which applies. Possible options are:
numbervars(Term, From, Next) is equivalent to bind_variables(Term, [from(From), next(Next)], i.e. each variable of Term is bound to ’$VAR’(N) where From ≤ N < Next.
numbervars(Term) is equivalent to numbervars(Term, 0, _).
Errors
Options is a partial list or a list with an element E which is a variable | instantiation_error | |
Options is neither a partial list nor a list | type_error(list, Options) | |
an element E of the Options list is neither a variable nor a variable binding option | domain_error(var_binding_option, E) | |
From is a variable | instantiation_error | |
From is neither a variable nor an integer | type_error(integer, From) | |
Next is neither a variable nor an integer | type_error(integer, Next) | |
List is a partial list | instantiation_error | |
List is neither a partial list nor a list | type_error(list, List) | |
Portability
GNU Prolog predicates.
Templates
Description
term_ref(Term, Ref) succeeds if the internal reference of Term is Ref. This predicate can be used either to obtain the internal reference of a term or to obtain the term associated with a given reference. Note that two identical terms can have different internal references. A good way to use this predicate is to first record the internal reference of a given term and to later re-obtain the term via this reference.
Errors
Term and Ref are both variables | instantiation_error | |
Ref is neither a variable nor an integer | type_error(integer, Ref) | |
Ref is an integer < 0 | domain_error(not_less_than_zero, Ref) | |
Portability
GNU Prolog predicate.