�编写宏的宏是
<code class="ph codeph">once-only</code>，它用来生成以特定顺序仅求值特定宏参数一次的代码。使用
<code class="ph codeph">once-only</code>，你几乎可以跟最初的有漏洞版本一样简单地写出 <code class="ph codeph">do-primes</code>
来，就像这样：</p><pre class="pre codeblock lisp"><code>(defmacro do-primes ((var start end) &amp;body body)
  (once-only (start end)
    `(do ((,var (next-prime ,start) (next-prime (1+ ,var))))
         ((&gt; ,var