[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] macroexpand-1 not expanding a macro(?)
From: |
Graham Fawcett |
Subject: |
Re: [Chicken-users] macroexpand-1 not expanding a macro(?) |
Date: |
Wed, 27 Feb 2008 10:51:59 -0500 |
On Wed, Feb 27, 2008 at 8:42 AM, Peter Wright <address@hidden> wrote:
> #;1> (use syntax-case)
> ; loading /usr/local/lib/chicken/3/syntax-case.so ...
> ; loading /usr/local/lib/chicken/3/syntax-case-chicken-macros.scm ...
> #;2> (define-macro (alpha x y) `(beta ,y ,x))
> #;3> (macroexpand '(alpha 1 2))
> (beta (quote 2) (quote 1))
> #;4> (macroexpand-1 '(alpha 1 2))
> (alpha 1 2)
> #f
> #;5>
I suspect that syntax-case is messing with things. You don't need it
for lowlevel macros. This is what I get, without syntax-case:
CHICKEN
Version 3.0.0rc1 - linux-unix-gnu-x86 [ manyargs dload ptables applyhook ]
(c)2000-2008 Felix L. Winkelmann compiled 2008-01-22 on cleo (Linux)
; loading /home/graham/.csirc ...
#;1> (define-macro (alpha x y) `(beta ,y ,x))
#;2> (macroexpand '(alpha 1 2))
(beta 2 1)
#;3> (macroexpand-1 '(alpha 1 2))
(beta 2 1)
#t
when I include syntax case, and define a new version of the macro:
#;4> (use syntax-case)
; loading /usr/local/lib/chicken/3/syntax-case.so ...
; loading /usr/local/lib/chicken/3/syntax-case-chicken-macros.scm ...
...
#;9> (define-macro (al x y) `(be ,y ,x))
#;10> (macroexpand-1 '(al 1 2))
(al 1 2)
#f
Graham