* moving all tag predicates to their own library (ikarus predicates)
This commit is contained in:
parent
39dd690164
commit
2931c3e769
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -49,15 +49,8 @@
|
||||||
(error 'fxlognot "~s is not a fixnum" x))
|
(error 'fxlognot "~s is not a fixnum" x))
|
||||||
($fxlognot x)))
|
($fxlognot x)))
|
||||||
|
|
||||||
(primitive-set! 'fixnum? (lambda (x) (fixnum? x)))
|
|
||||||
(primitive-set! 'immediate? (lambda (x) (immediate? x)))
|
(primitive-set! 'immediate? (lambda (x) (immediate? x)))
|
||||||
|
|
||||||
(primitive-set! 'fxzero?
|
|
||||||
(lambda (x)
|
|
||||||
(unless (fixnum? x)
|
|
||||||
(error 'fxzero? "~s is not a fixnum" x))
|
|
||||||
($fxzero? x)))
|
|
||||||
|
|
||||||
(primitive-set! 'boolean? (lambda (x) (boolean? x)))
|
(primitive-set! 'boolean? (lambda (x) (boolean? x)))
|
||||||
|
|
||||||
(primitive-set! 'char? (lambda (x) (char? x)))
|
(primitive-set! 'char? (lambda (x) (char? x)))
|
||||||
|
|
|
@ -1,62 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(library (ikarus numeric predicates)
|
|
||||||
(export fixnum? flonum? bignum? number? complex? real? rational?
|
|
||||||
integer? exact?)
|
|
||||||
(import
|
|
||||||
(except (ikarus) fixnum? flonum? bignum? number? complex? real?
|
|
||||||
rational? integer? exact?)
|
|
||||||
(rename (only (ikarus) fixnum? flonum? bignum?)
|
|
||||||
(fixnum? sys:fixnum?)
|
|
||||||
(flonum? sys:flonum?)
|
|
||||||
(bignum? sys:bignum?)))
|
|
||||||
|
|
||||||
(define fixnum?
|
|
||||||
(lambda (x) (sys:fixnum? x)))
|
|
||||||
|
|
||||||
(define bignum?
|
|
||||||
(lambda (x) (sys:bignum? x)))
|
|
||||||
|
|
||||||
(define flonum?
|
|
||||||
(lambda (x) (sys:flonum? x)))
|
|
||||||
|
|
||||||
(define number?
|
|
||||||
(lambda (x)
|
|
||||||
(or (sys:fixnum? x)
|
|
||||||
(sys:bignum? x)
|
|
||||||
(sys:flonum? x))))
|
|
||||||
|
|
||||||
(define complex?
|
|
||||||
(lambda (x) (number? x)))
|
|
||||||
|
|
||||||
(define real?
|
|
||||||
(lambda (x) (number? x)))
|
|
||||||
|
|
||||||
(define rational?
|
|
||||||
(lambda (x)
|
|
||||||
(cond
|
|
||||||
[(sys:fixnum? x) #t]
|
|
||||||
[(sys:bignum? x) #t]
|
|
||||||
[(sys:flonum? x) #f]
|
|
||||||
[else (error 'rational? "~s is not a number" x)])))
|
|
||||||
|
|
||||||
(define integer?
|
|
||||||
(lambda (x)
|
|
||||||
(cond
|
|
||||||
[(sys:fixnum? x) #t]
|
|
||||||
[(sys:bignum? x) #t]
|
|
||||||
[(sys:flonum? x) (error 'integer "dunno for ~s" x)]
|
|
||||||
[else #f])))
|
|
||||||
|
|
||||||
(define exact?
|
|
||||||
(lambda (x)
|
|
||||||
(cond
|
|
||||||
[(sys:fixnum? x) #t]
|
|
||||||
[(sys:bignum? x) #t]
|
|
||||||
[(sys:flonum? x) #f]
|
|
||||||
[else
|
|
||||||
(error 'exact? "~s is not a number" x)]))))
|
|
||||||
|
|
||||||
(library (ikarus fixnums)
|
(library (ikarus fixnums)
|
||||||
(export fxzero?)
|
(export fxzero?)
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
|
||||||
|
(library (ikarus predicates)
|
||||||
|
(export fixnum? flonum? bignum? number? complex? real? rational?
|
||||||
|
integer? exact?)
|
||||||
|
(import
|
||||||
|
(except (ikarus) fixnum? flonum? bignum? number? complex? real?
|
||||||
|
rational? integer? exact?)
|
||||||
|
(rename (only (ikarus) fixnum? flonum? bignum?)
|
||||||
|
(fixnum? sys:fixnum?)
|
||||||
|
(flonum? sys:flonum?)
|
||||||
|
(bignum? sys:bignum?)))
|
||||||
|
|
||||||
|
(define fixnum?
|
||||||
|
(lambda (x) (sys:fixnum? x)))
|
||||||
|
|
||||||
|
(define bignum?
|
||||||
|
(lambda (x) (sys:bignum? x)))
|
||||||
|
|
||||||
|
(define flonum?
|
||||||
|
(lambda (x) (sys:flonum? x)))
|
||||||
|
|
||||||
|
(define number?
|
||||||
|
(lambda (x)
|
||||||
|
(or (sys:fixnum? x)
|
||||||
|
(sys:bignum? x)
|
||||||
|
(sys:flonum? x))))
|
||||||
|
|
||||||
|
(define complex?
|
||||||
|
(lambda (x) (number? x)))
|
||||||
|
|
||||||
|
(define real?
|
||||||
|
(lambda (x) (number? x)))
|
||||||
|
|
||||||
|
(define rational?
|
||||||
|
(lambda (x)
|
||||||
|
(cond
|
||||||
|
[(sys:fixnum? x) #t]
|
||||||
|
[(sys:bignum? x) #t]
|
||||||
|
[(sys:flonum? x) #f]
|
||||||
|
[else (error 'rational? "~s is not a number" x)])))
|
||||||
|
|
||||||
|
(define integer?
|
||||||
|
(lambda (x)
|
||||||
|
(cond
|
||||||
|
[(sys:fixnum? x) #t]
|
||||||
|
[(sys:bignum? x) #t]
|
||||||
|
[(sys:flonum? x) (error 'integer "dunno for ~s" x)]
|
||||||
|
[else #f])))
|
||||||
|
|
||||||
|
(define exact?
|
||||||
|
(lambda (x)
|
||||||
|
(cond
|
||||||
|
[(sys:fixnum? x) #t]
|
||||||
|
[(sys:bignum? x) #t]
|
||||||
|
[(sys:flonum? x) #f]
|
||||||
|
[else
|
||||||
|
(error 'exact? "~s is not a number" x)]))))
|
|
@ -23,6 +23,7 @@
|
||||||
;;;
|
;;;
|
||||||
'("ikarus.handlers.ss"
|
'("ikarus.handlers.ss"
|
||||||
"ikarus.multiple-values.ss"
|
"ikarus.multiple-values.ss"
|
||||||
|
"ikarus.predicates.ss"
|
||||||
"ikarus.control.ss"
|
"ikarus.control.ss"
|
||||||
"ikarus.collect.ss"
|
"ikarus.collect.ss"
|
||||||
"ikarus.records.ss"
|
"ikarus.records.ss"
|
||||||
|
|
Loading…
Reference in New Issue