and raises the exception
domain_errornot_less_then_zero, Arg if setarg3+Arg, +Term, +Value Extra-logical predicate. Assigns the Arg-th argument of the compound term Term with the given Value. The assignment is undone if backtracking brings the state back into a position before the setarg3 call.
This predicate may be used for destructive assignment to terms, using
them as and extra-logical storage bin.
?Term?List
List is a list which head is the functor of Term and the
remaining arguments are the arguments of the term. Each of the
arguments may be a variable, but not both. This predicate is called
`Univ'. Examples:
numbervars4+Term, +Functor, +Start, -End
Unify the free variables of Term with a term constructed from the
atom Functor with one argument. The argument is the number of the
variable. Counting starts at Start. End is unified with
the number that should be given to the next variable. Example:
In Edinburgh Prolog the second argument is missing. It is fixed to be
$VAR.
free_variables2+Term, -List
Unify List with a list of variables, each sharing with a unique variable
of Term. For example:
copy_term2+In, -Out
Make a copy of term In and unify the result with Out.
Ground parts of In are shared by Out. Provided In and
Out have no sharing variables before this call they will have no
sharing variables afterwards. copy_term2 is semantically equivalent
to: