Go to the previous, next section.
These features permit you to write code to be evaluated during compilation of a program.
Special Form: eval-and-compile body
This form marks body to be evaluated both when you compile the containing code and when you run it (whether compiled or not).
You can get a similar result by putting body in a separate file
and referring to that file with require. Using require is
preferable if there is a substantial amount of code to be executed in
this way.
Special Form: eval-when-compile body
This form marks body to be evaluated at compile time only. The result of evaluation by the compiler becomes a constant which appears in the compiled program. When the program is interpreted, not compiled at all, body is evaluated normally.
At top-level, this is analogous to the Common Lisp idiom
(eval-when (compile) ...). Elsewhere, the Common Lisp
`#.' reader macro (but not when interpreting) is closer to what
eval-when-compile does.
Go to the previous, next section.