We will now explore quoting and unquoting, which are techniques used to generate expressions based on a predefined template for an expression. These techniques are foundational in creating macros, and they help structure the code of a macro to look more like its macroexpanded form.
The following examples can be found in
quoting.clj of the book's source code.
quote form simply returns an expression without evaluating it. This may seem trivial, but preventing the evaluation of an expression is actually something that is not possible in all programming languages. The
quote form is abbreviated using the apostrophe character (
'). If we quote an expression, it is returned in verbatim, as shown here: