set-difference returns a list
of elements of list-1
that do not appear in list-2.
nset-difference is the destructive
version of set-difference.
It may destroy list-1.
For all possible ordered pairs consisting of
one element from list-1 and one element from list-2, the
:test or :test-not function is
used to determine whether they satisfy the test.
The first argument to the :test or :test-not function
is the part of an element of list-1 that is returned by
the :key function (if supplied); the second argument is the part of
an element of list-2 that is
returned by the :key function (if supplied).
If :key is supplied, its argument is a list-1 or
list-2 element. The :key function
typically returns part of
the supplied element.
If :key is not supplied, the list-1 or list-2
element is used.
An element of list-1
appears in the result if and only if it does not match any element
of list-2.
There is no guarantee that the order of elements in the result will
reflect the ordering of the arguments in any particular way.
The result list
may share cells with, or be eq to, either of list-1
or list-2,
if appropriate.