mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-06 20:56:36 +02:00
Added define-c?
This commit is contained in:
parent
95391a6cab
commit
c5ea165cb5
1 changed files with 5 additions and 1 deletions
|
@ -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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue