quoted pairs or vectors are compiled to runtime cons or vector
This commit is contained in:
parent
1e345d8228
commit
7f430e000b
1173
lib/ext/boot.c
1173
lib/ext/boot.c
File diff suppressed because it is too large
Load Diff
|
@ -275,7 +275,12 @@
|
||||||
(define-transformer 'quote
|
(define-transformer 'quote
|
||||||
(lambda (form env)
|
(lambda (form env)
|
||||||
(if (= (length form) 2)
|
(if (= (length form) 2)
|
||||||
`(,the-core-quote ,(cadr form))
|
(let ((obj (cadr form)))
|
||||||
|
(cond
|
||||||
|
((pair? obj) `(,(the 'cons) (,the-quote ,(car obj)) (,the-quote ,(cdr obj))))
|
||||||
|
((vector? obj) `(,(the 'vector) . ,(vector->list
|
||||||
|
(vector-map (lambda (obj) `(,the-quote ,obj)) obj))))
|
||||||
|
(else `(,the-core-quote ,obj))))
|
||||||
(error "malformed quote" form))))
|
(error "malformed quote" form))))
|
||||||
|
|
||||||
(define-transformer 'if
|
(define-transformer 'if
|
||||||
|
|
Loading…
Reference in New Issue