> Just to add some details.  The macro expander is called twice in the
> example because CMUCL has (sort of) two interpreters.  The first
> interpreter is very simple and deals only with simple but common
> cases, the second interpreter is basically the first stage of the
> compiler (see EVAL for details).  The simple interpreter macroexpands
> your example and decides that it can't handle it and passes the
> unexpanded form to the second interpreter and so the form gets expanded
> a second time.

Ah, I see.  So basically the form that is used is always the second
one?

At any rate, thanks a lot for this clarification!

Albert.



Reply via email to