>>>> "Craig" == Craig Lanning
<CraigL(a)internetx.net> writes:
Craig> You can build any size macro with relative ease by building it incrementally
Craig> and using MACROEXPAND to check it.
Sure. I don't want to write macros by trial, however. I want to
write them by design.
Craig> Macros do not really reference bindings. They alter the lexical environment
Craig> by making potentially complex substitutions.
>
> That's what they do in Common Lisp. In Scheme, it's different.
Craig> How are they different in Scheme?
Macros in Scheme obey the exact same scoping rules as the rest of the
language. In:
(define-syntax foo
(syntax-rules ()
((foo) bar)))
BAR always refers to the binding of BAR lexically visible in the macro
definition.
I'm not sure I understood your question right.
--
Cheers =8-} Chipsy
Friede, Völkerverständigung und überhaupt blabla