From c5ea165cb55ba74150e28f7b2b496c1c14ab41bc Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 7 Jan 2016 21:03:38 -0500 Subject: [PATCH] Added define-c? --- scheme/cyclone/transforms.sld | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 5fc724dc..d970b784 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -86,6 +86,7 @@ define->lambda define->var define->exp + define-c set!? set!->var set!->exp @@ -658,6 +659,9 @@ (define (define->exp exp) (cddr exp)) +(define (define-c? exp) + (tagged-list? 'define-c exp)) + ; set! : exp -> boolean (define (set!? exp) (tagged-list? 'set! exp)) @@ -803,7 +807,7 @@ ;; (alpha, cps, closure, etc). otherwise code has to be interpreted during expansion ;; `(define ,name ,(expand body env)))) - + ((define-c? exp) exp) ((symbol? (car exp)) (let ((val (env:lookup (car exp) env #f))) (if (tagged-list? 'macro val)