From 3f98dd503584b73352163c353c13151fda4f607c Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 4 Apr 2009 00:02:02 +0900 Subject: [PATCH] need to quote literals in syntax-rules --- syntax-rules.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/syntax-rules.scm b/syntax-rules.scm index f323a979..73ef04ef 100644 --- a/syntax-rules.scm +++ b/syntax-rules.scm @@ -36,7 +36,7 @@ _let (list (list v x)) (cond ((symbol? p) - (if (memq p lits) + (if (memq p (list _quote lits)) (list _and (list _eq? v p) (k vars)) (list _let (list (list p v)) (k (cons (cons p dim) vars))))) ((ellipse? p) @@ -104,7 +104,9 @@ (cdr x))) (define (all-vars x dim) (let lp ((x x) (dim dim) (vars '())) - (cond ((symbol? x) (if (memq x lits) vars (cons (cons x dim) vars))) + (cond ((symbol? x) (if (memq x (list _quote lits)) + vars + (cons (cons x dim) vars))) ((ellipse? x) (lp (car x) (+ dim 1) vars)) ((pair? x) (lp (car x) dim (lp (cdr x) dim vars))) ((vector? x) (lp (vector->list x) dim vars))