CLHS: Type Specifier SATISFIES

#

Type Specifier SATISFIES

Compound Type Specifier Kind:

Predicating.

Compound Type Specifier Syntax:

satisfies predicate-name

Compound Type Specifier Arguments:

predicate-name---a symbol.

Compound Type Specifier Description:

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.

The following X3J13 cleanup issue, not part of the specification, applies to this section:

- TYPE-SPECIFIER-ABBREVIATION:X3J13-JUN90-GUESS

Copyright 1996-2005, LispWorks Ltd. All rights reserved.