Succeeds when List3 unifies with the concatenation of List1
and List2. The predicate can be used with any instantiation
pattern (even three variables).
Select an element of List1 that unifies with Elem. List2
is unified with the list remaining from List1 after deleting
the selected element. Normally used with the instantiation pattern +List1,
-Elem, -List2, but can also be used to insert an element in a list
using -List1, +Elem, +List2.
Succeeds if Elem unifies with the last element of List.
If
List is a proper list last/2
is deterministic. If List has an unbound tail, backtracking
will cause List to grow.
Transform List1, possibly holding lists as elements into a
`flat' list by replacing each list with its elements (recursively).
Unify the resulting flat list with List2. Example:
List1 and List2 are lists, sorted to the standard
order of terms (see section 3.5). List3
will be unified with an ordered list holding both the elements of List1
and List2. Duplicates are not removed.