felix winkelmann wrote:
On Thu, Feb 21, 2008 at 4:39 PM, Hans Nowak <[EMAIL PROTECTED]> wrote:
I guess I'll have to use eval, but I don't think it's going to work if I use
this kind of s-expr inside a function? Like
(define (blah x)
(sasm (jmp ,x)))
(where SASM is the name of the macro that handles this kind of s-expressions).
This should work:
#;1> (define-macro (foo x) (list 'quasiquote x))
#;2> (foo 33)
33
#;3> (foo (3 + 4 is ,(+ 3 4)))
(3 + 4 is 7)
#;4>
You macro can for example expand into a call to a function
that does the actual processing of the (implicitly) quasiquoted
argument.
Excellent, that works. I can now use something like
(define-macro (sasm . body)
(list 'map 'translate-sasm (list 'quasiquote body)))
Thanks!
--Hans
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users