This page gives additional definitions of skeletons which complement those of Chapter 6 of the book. It also supplies some definitions of predicates used in the skeletons and additions of Chapter 6.
Traversing a list recurses through each of its elements, H, an
applies some test, , to it. The base case is an empty list,
, allowing our search to end when we have run out of elements.
Decrementing a counter recurses through a sequence of positive integer values from X down to 0.
A recursive deconstruction of a binary term either succeeds by
applying some test to the term C; or (if the term is
composed from functor, F, with arguments A and B) it recurses on
A and B; or it obtains some new term, T, from C and recurses
on T.
succeeds if
is the term
constructed by replacing in C all instances of
with
.
constructs the conjunction of terms,
, from B by replacing each term of the form
in B with
one of the form
, where V is a new variable.
is
the set of all such variables.