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 |
| > (real? "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 |