chicken-users
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]