help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [External] : Re: Passing result of macroexpand-all as argument to a


From: Drew Adams
Subject: RE: [External] : Re: Passing result of macroexpand-all as argument to a function
Date: Wed, 9 Aug 2023 15:27:01 +0000

> > Why don't you just try?
> I do not think one can just try it

Yes, you can.  (This is the beauty of Lisp.)

> because it is not evident at what instance in
> time does the interpreter interpret the output
> code of a macro.

As mentioned, a macro _call_, such as (mymacro...)
is interpreted at that same time any Lisp form is.

What's particular about interpreting a macro call
is that first the call is macroexpanded, according
to the macro definition, and then the expansion
result is interpreted (evaluated) - immediately.
That's all.

If you byte-compile the Lisp source code then the
macro call gets macroexpanded during compilation,
and the result of expansion is then compiled to
produce the byte-compiled code.  In effect, the
macro-call source code disappears and is replaced
by the expansion, in line, and the resulting code
is then byte-compiled.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]