[gambit-list] define-macro question
ben at fuhok.net
ben at fuhok.net
Thu Mar 31 20:22:23 EST 2005
Is it possible to use externally defined functions inside a macro
definition? For example, one might want to use srfi-1 utilities to
manipulate expressions as follows.
(load "srfi-1")
(define-macro (silly vars . body)
(let ((vals (iota (length vars))))
`(let ,(zip vars vals)
, at body)))
(silly (foo bar baz) (pp bar))
which should expand to
(let ((foo 0) (bar 1) (baz 2))
(pp foo))
This doesn't work because macro expansion happens before srfi-1 is
loaded. Bummer.
I imagine that one will be able to do this in the next release (it
causes a segfault right now), but is there a better way?
(define-macro (silly vars . body)
(include "srfi-1.scm")
(let ((vals (iota (length vars))))
`(let ,(zip vars vals)
, at body)))
Regards,
Ben
More information about the Gambit-list
mailing list