schemify: fix boolean-or-fixnum?

Also, add null? to equal-implies-eq?
This commit is contained in:
Gustavo Massaccesi 2018-04-10 12:14:11 -03:00
parent a5d0d38ae0
commit 8d08264b41

View File

@ -15,18 +15,19 @@
(let ([val (unwrap val)]) (let ([val (unwrap val)])
(or (symbol? val) (or (symbol? val)
(keyword? val) (keyword? val)
(null? val)
(boolean-or-fixnum? val)))] (boolean-or-fixnum? val)))]
[`,val [`,val
(let ([val (unwrap val)]) (let ([val (unwrap val)])
;; Booleans and numbers don't have to be quuted ;; Booleans and numbers don't have to be quoted
(boolean-or-fixnum? val))])) (boolean-or-fixnum? val))]))
(define (boolean-or-fixnum? val) (define (boolean-or-fixnum? val)
(boolean? val) (or (boolean? val)
(and (integer? val) (and (integer? val)
(exact? val) (exact? val)
;; Always fixnum? Conversatively... ;; Always fixnum? conservatively...
(<= (- (expt 2 16)) val (expt 2 16)))) (<= (- (expt 2 24)) val (- (expt 2 24) 1)))))
(define (equal-implies-eqv? e) (define (equal-implies-eqv? e)
(match e (match e