2007-05-05 03:24:33 -04:00
|
|
|
|
|
|
|
(library (ikarus predicates)
|
2007-05-05 03:34:59 -04:00
|
|
|
|
|
|
|
(export fixnum? flonum? bignum? number? complex? real? rational?
|
|
|
|
integer? exact? eof-object? immediate? boolean? char?
|
2007-05-05 04:28:40 -04:00
|
|
|
vector? string? procedure? null? pair? symbol? not)
|
2007-05-05 03:34:59 -04:00
|
|
|
|
2007-05-05 03:24:33 -04:00
|
|
|
(import
|
2007-05-05 03:34:59 -04:00
|
|
|
|
2007-05-05 03:24:33 -04:00
|
|
|
(except (ikarus) fixnum? flonum? bignum? number? complex? real?
|
2007-05-05 03:34:59 -04:00
|
|
|
rational? integer? exact? eof-object? immediate?
|
|
|
|
boolean? char? vector? string? procedure? null?
|
2007-05-05 04:28:40 -04:00
|
|
|
pair? symbol? not)
|
2007-05-05 03:34:59 -04:00
|
|
|
|
|
|
|
(rename (only (ikarus) fixnum? flonum? bignum? eof-object?
|
|
|
|
immediate? boolean? char? vector? string? procedure?
|
|
|
|
null? pair? symbol?)
|
2007-05-05 03:24:33 -04:00
|
|
|
(fixnum? sys:fixnum?)
|
|
|
|
(flonum? sys:flonum?)
|
2007-05-05 03:27:53 -04:00
|
|
|
(bignum? sys:bignum?)
|
|
|
|
(eof-object? sys:eof-object?)
|
2007-05-05 03:34:59 -04:00
|
|
|
(immediate? sys:immediate?)
|
|
|
|
(boolean? sys:boolean?)
|
|
|
|
(char? sys:char?)
|
|
|
|
(vector? sys:vector?)
|
|
|
|
(string? sys:string?)
|
|
|
|
(procedure? sys:procedure?)
|
|
|
|
(null? sys:null?)
|
|
|
|
(pair? sys:pair?)
|
|
|
|
(symbol? sys:symbol?)))
|
2007-05-05 03:24:33 -04:00
|
|
|
|
|
|
|
(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
|
2007-05-05 03:27:53 -04:00
|
|
|
(error 'exact? "~s is not a number" x)])))
|
|
|
|
|
2007-05-05 03:34:59 -04:00
|
|
|
(define eof-object? (lambda (x) (sys:eof-object? x)))
|
|
|
|
(define immediate? (lambda (x) (sys:immediate? x)))
|
|
|
|
(define boolean? (lambda (x) (sys:boolean? x)))
|
|
|
|
(define char? (lambda (x) (sys:char? x)))
|
|
|
|
(define vector? (lambda (x) (sys:vector? x)))
|
|
|
|
(define string? (lambda (x) (sys:string? x)))
|
|
|
|
(define procedure? (lambda (x) (sys:procedure? x)))
|
|
|
|
(define null? (lambda (x) (sys:null? x)))
|
|
|
|
(define pair? (lambda (x) (sys:pair? x)))
|
|
|
|
(define symbol? (lambda (x) (sys:symbol? x)))
|
2007-05-05 03:27:53 -04:00
|
|
|
|
2007-05-05 04:28:40 -04:00
|
|
|
(define not (lambda (x) (if x #f #t)))
|
2007-05-05 03:27:53 -04:00
|
|
|
)
|