diff options
| author | 2025-02-27 16:54:43 -0500 | |
|---|---|---|
| committer | 2025-02-27 16:54:43 -0500 | |
| commit | bca4e706553b4255ccf42d219b6f578330bb75fa (patch) | |
| tree | ec784831ef3b195cd6426f94449fdff138035920 /lib/SAHP/internal-chicken.scm | |
| parent | rename (diff) | |
reorganize to remove subtype inheritance
Diffstat (limited to 'lib/SAHP/internal-chicken.scm')
| -rw-r--r-- | lib/SAHP/internal-chicken.scm | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/lib/SAHP/internal-chicken.scm b/lib/SAHP/internal-chicken.scm index 992d98f..e5392a2 100644 --- a/lib/SAHP/internal-chicken.scm +++ b/lib/SAHP/internal-chicken.scm @@ -17,12 +17,11 @@ (define (type-of x) (cond - ((exact-integer? x) 'exact-integer) - ((integer? x) 'integer) - ((rational? x) 'rational) - ((real? x) 'real) - ((complex? x) 'complex) - ((number? x) 'number) + ((fixnum? x) 'fixnum) + ((bignum? x) 'bignum) + ((flonum? x) 'flonum) + ((cplxnum? x) 'cplxnum) + ((ratnum? x) 'ratnum) ((boolean? x) 'boolean) ((char? x) 'char) ((null? x) 'null) @@ -37,11 +36,17 @@ ((record-instance? x) (record-instance-type x)) (else (error "cannot derive type of" x)))) -(define (subtypes type) - (case type - ((number) '(complex)) - ((complex) '(real)) - ((real) '(rational)) - ((rational) '(integer)) - ((integer) '(exact-integer)) - (else '()))) +(define all-exact-integers + '(fixnum bignum)) + +(define all-exact-rationals + `(,all-exact-integers ratnum)) + +(define all-reals + `(,all-exact-rationals flonum)) + +(define all-complex + `(,all-reals cplxnum)) + +(define all-numbers all-complex) + |
