**Common Lisp the Language, 2nd Edition**

Each of the following functions tests a single number for a specific property. Each function requires that its argument be a number; to call one with a non-number is an error.

**[Function]**

`zerop number`

This predicate is true if *number* is zero (the integer zero,
a floating-point zero, or a complex zero), and is false otherwise.
Regardless of whether an implementation provides distinct representations
for positive and negative floating-point zeros,
`(zerop -0.0)` is always true.
It is an error if the argument *number* is not a number.

**[Function]**

`plusp number`

This predicate is true if *number* is strictly greater than zero,
and is false otherwise.
It is an error if the argument *number* is not a non-complex number.

**[Function]**

`minusp number`

This predicate is true if *number* is strictly less than zero,
and is false otherwise.
Regardless of whether an implementation provides distinct representations
for positive and negative floating-point zeros,
`(minusp -0.0)` is always false.
(The function `float-sign` may be used to distinguish a negative zero.)
It is an error if the argument *number* is not a non-complex number.

**[Function]**

`oddp integer`

This predicate is true if the argument *integer* is odd (not divisible
by 2), and otherwise is false. It is an error if the argument is not
an integer.

**[Function]**

`evenp integer`

This predicate is true if the argument *integer* is even (divisible
by 2), and otherwise is false. It is an error if the argument is not
an integer.

See also the data-type predicates `integerp`,
`rationalp`, `floatp`, `complexp`, and `numberp`.

AI.Repository@cs.cmu.edu