Predicating.
(satisfies predicate-name)
predicate-name—a symbol.
This denotes the set of all objects that satisfy the
predicate predicate-name, which must be a symbol
whose global function definition is a one-argument
predicate. A name is required for predicate-name;
lambda expressions are not allowed.
For example, the type specifier (and integer (satisfies evenp))
denotes the set of all even integers.
The form (typep
x '(satisfies
p))
is equivalent to
(if (
p x) t nil)
.
The argument is required. The symbol * can be the argument, but it denotes itself (the symbol *), and does not represent an unspecified value.
The symbol satisfies
is not valid as a type specifier.