 The <code class="mendoza-code">let</code>, <code class="mendoza-code">loop</code>, and <code class="mendoza-code">defn</code>
forms are macros. When the compiler sees a macro, it evaluates the macro and
then compiles the result. We say the macro has been <strong>expanded</strong> after the
compiler evaluates it. A simple version of the <code class="mendoza-code">defn</code> macro can be thought
of as transforming code of the form
</p>
<pre class="mendoza-codeblock"><code data-language="janet">(<span class=