3.2.1 Number Types
Returns #t if v
is a number, #f otherwise.
Examples: |
> (number? 1) |
#t |
> (number? 2+3i) |
#t |
> (number? "hello") |
#f |
Examples: |
> (real? 1) |
#t |
> (real? +inf.0) |
#t |
> (real? 2+3i) |
#f |
> (real? 2.0+0.0i) |
#f |
> (real? "hello") |
#f |
Examples: |
> (rational? 1) |
#t |
> (rational? +inf.0) |
#f |
> (rational? "hello") |
#f |
Examples: |
> (integer? 1) |
#t |
> (integer? 2.3) |
#f |
> (integer? 4.0) |
#t |
> (integer? +inf.0) |
#f |
> (integer? 2+3i) |
#f |
> (integer? "hello") |
#f |
(exact-integer? v) → boolean? |
v : any/c |
Examples: |
> (exact-integer? 1) |
#t |
> (exact-integer? 4.0) |
#f |
(exact-nonnegative-integer? v) → boolean? |
v : any/c |
Examples: |
> (exact-nonnegative-integer? 0) |
#t |
> (exact-nonnegative-integer? -1) |
#f |
(exact-positive-integer? v) → boolean? |
v : any/c |
Examples: |
> (exact-positive-integer? 1) |
#t |
> (exact-positive-integer? 0) |
#f |
(inexact-real? v) → boolean? |
v : any/c |
Note: the result of this function is platform-dependent, so using it in syntax transformers can lead to platform-dependent bytecode files.
Examples: |
> (zero? 0) |
#t |
> (zero? -0.0) |
#t |
Examples: |
> (positive? 10) |
#t |
> (positive? -10) |
#f |
> (positive? 0.0) |
#f |
Examples: |
> (negative? 10) |
#f |
> (negative? -10) |
#t |
> (negative? -0.0) |
#f |
Examples: |
> (even? 10.0) |
#t |
> (even? 11) |
#f |
> (even? +inf.0) |
even?: expects argument of type <integer>; given +inf.0 |
Examples: |
> (odd? 10.0) |
#f |
> (odd? 11) |
#t |
> (odd? +inf.0) |
odd?: expects argument of type <integer>; given +inf.0 |
Returns #t if z
is an exact number, #f otherwise.
Examples: |
> (exact? 1) |
#t |
> (exact? 1.0) |
#f |
Returns #t if z
is an inexact number, #f otherwise.
Examples: |
> (inexact? 1) |
#f |
> (inexact? 1.0) |
#t |
(inexact->exact z) → exact? |
z : number? |
Coerces z to an
exact number. If z is already exact, it is returned. If z
is +inf.0, -inf.0, or +nan.0, then the
exn:fail:contract exception is raised.
Examples: |
> (inexact->exact 1) |
1 |
> (inexact->exact 1.0) |
1 |
(exact->inexact z) → inexact? |
z : number? |
Coerces z to an
inexact number. If z is already inexact, it is returned.
Examples: |
> (exact->inexact 1) |
1.0 |
> (exact->inexact 1.0) |
1.0 |