Added define-c?

This commit is contained in:
Justin Ethier 2016-01-07 21:03:38 -05:00
parent 95391a6cab
commit c5ea165cb5

View file

@ -86,6 +86,7 @@
define->lambda define->lambda
define->var define->var
define->exp define->exp
define-c
set!? set!?
set!->var set!->var
set!->exp set!->exp
@ -658,6 +659,9 @@
(define (define->exp exp) (define (define->exp exp)
(cddr exp)) (cddr exp))
(define (define-c? exp)
(tagged-list? 'define-c exp))
; set! : exp -> boolean ; set! : exp -> boolean
(define (set!? exp) (define (set!? exp)
(tagged-list? 'set! exp)) (tagged-list? 'set! exp))
@ -803,7 +807,7 @@
;; (alpha, cps, closure, etc). otherwise code has to be interpreted during expansion ;; (alpha, cps, closure, etc). otherwise code has to be interpreted during expansion
;; ;;
`(define ,name ,(expand body env)))) `(define ,name ,(expand body env))))
((define-c? exp) exp)
((symbol? (car exp)) ((symbol? (car exp))
(let ((val (env:lookup (car exp) env #f))) (let ((val (env:lookup (car exp) env #f)))
(if (tagged-list? 'macro val) (if (tagged-list? 'macro val)