Skip to main content

rationalp

rationalp Function

Syntax:

rationalp object → generalized-boolean

Arguments and Values:

object—an object.

generalized-boolean—a generalized boolean.

Description:

Returns true if object is of type rational; otherwise, returns false.

Examples:

(rationalp 12) → true 
(rationalp 6/5) → true
(rationalp 1.212) → false

See Also:

rational

Notes:

(rationalp object) (typep object ’rational)

Expanded Reference: rationalp

Testing if an object is a rational

rationalp returns true if the object is a rational number, which includes both integers and ratios.

(rationalp 12)
=> T
(rationalp 6/5)
=> T
(rationalp -7)
=> T
(rationalp 0)
=> T

Non-rational numbers

Floats and complex numbers are not rationals.

(rationalp 1.212)
=> NIL
(rationalp 3.0d0)
=> NIL
(rationalp #c(1 2))
=> NIL

Non-numeric objects

rationalp returns false for all non-numeric types.

(rationalp nil)
=> NIL
(rationalp "1/2")
=> NIL
(rationalp 'foo)
=> NIL

Integers are rationals

Every integer is also a rational, since an integer n is equivalent to the ratio n/1.

(rationalp 42)
=> T
(rationalp (expt 2 100))
=> T
(and (integerp 5) (rationalp 5))
=> T

Equivalence to typep

rationalp is equivalent to (typep object 'rational).

(eql (rationalp 1/3) (typep 1/3 'rational))
=> T
(eql (rationalp 1.0) (typep 1.0 'rational))
=> T