(mac when (test . body) `(oaf ,test (do ,@body))) (mac oaf (test conseq) `(if ,test ,conseq))
arc> (let oaf 1 (when 2 3)) 3
arc> (macex '(when 2 3)) (if 2 (do 3))
arc> if Error: "reference to undefined identifier: _if"
-----
Probably it would be convenient to have an object tagged as a special operator for those, but it would be documentation, not functional code.
Yeah, I know much less about Scheme than CL, so I used the CL term.
I guess the macros in the form are expanded with reference to the context of the entire form (the global context).
Does this mean we don't have macrolet?