File tree 2 files changed +25
-10
lines changed
2 files changed +25
-10
lines changed Original file line number Diff line number Diff line change 28
28
29
29
; ;;; Type definitions
30
30
31
+ (define-scheme-type* (number?) numberp
32
+ ' number)
33
+
34
+ (define-scheme-type* (complex?) numberp
35
+ ' number)
36
+
37
+ (define-scheme-type* (real?) realp
38
+ ' real)
39
+
40
+ (define-scheme-type (rational?)
41
+ ' (or rational float ))
42
+
43
+ ; ;; TODO: integer?
44
+
31
45
(define-scheme-type (exact?)
32
46
" An exact number might be real or complex, but is not a float."
33
47
` (or rational (complex rational )))
34
48
35
- (define-scheme-type (exact-integer?)
36
- " An exact integer in Scheme is just a CL integer."
37
- ` integer)
38
-
39
49
(define-scheme-type (inexact?)
40
50
" An inexact number is just a float, real or complex."
41
51
` (or float (complex float )))
42
52
43
53
(define-scheme-type (flonum?)
44
- " A Scheme flonum is just a double-float."
45
54
' double-float)
46
55
56
+ (define-scheme-type (exact-integer?)
57
+ ` integer)
58
+
59
+ (define-scheme-type* (zero?) zerop
60
+ ' (or (real 0 0 ) (complex (real 0 0 ))))
61
+
47
62
(define-scheme-type (boolean?)
48
63
"
49
64
The two symbols that represent a Scheme Boolean, which externally are
Original file line number Diff line number Diff line change 39
39
; ;; Numerical predicates
40
40
41
41
(define-scheme-predicate (number? obj)
42
- (numberp obj))
42
+ (number? obj))
43
43
44
44
(define-scheme-predicate (complex? obj)
45
- (numberp obj))
45
+ (complex? obj))
46
46
47
47
(define-scheme-predicate (real? obj)
48
- (realp obj))
48
+ (real? obj))
49
49
50
50
(define-scheme-predicate (rational? obj)
51
- (or ( rationalp obj) ( floatp obj) ))
51
+ (rational? obj))
52
52
53
53
(define-scheme-predicate (integer? obj)
54
54
(or (integerp obj)
90
90
(apply #' >= x more-numbers))
91
91
92
92
(define-scheme-predicate (zero? z)
93
- (zerop z))
93
+ (zero? z))
94
94
95
95
(define-scheme-predicate (positive? x)
96
96
(plusp x))
You can’t perform that action at this time.
0 commit comments