Succeeds when List3 unifies with the concatenation of List1
and List2. The predicate can be used with any instantiation
pattern (even three variables).
Select Elem from List leaving Rest. It
behaves as
member/2,
returning the remaining elements in Rest. Note that besides
selecting elements from a list, it can also be used to insert elements. (20)
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.6). List3
will be unified with an ordered list holding both the elements of List1
and List2. Duplicates are not removed.