#>g000001さん ありがとうございます。コンパイル時にrev関数が必要なのでそれを評価するのはわかりましたが
#それならば (eval-when (:compile-toplevel) ...) だけで十分ではないでしょうか。
#それとも、すべてのオプションを指定する理由があるのですか。
#>llibraさん Common Lispの実行モデルを理解できるよい例はありますかね。
#:compile-toplevelだけだと、そのソースファイルを直接loadしたり、その部分だけREPLに打ち込んだりした場合に評価されないです。わざとそう意図して書くなら別ですが、「どういう形であれCLがそのフォームを見た段階で評価しておいて欲しい」っていう場合は全部書くのが定石ですね。
#実験されてみるのが一番早かろうと思いますが、 @bowbow99 さんの書いてある内容の通り地の文はloadとexecuteがついている状態でして
#わざわざとっぱらうとevalされないタイミングができちゃいますので、よっぽどのことがないかぎりcompile-toplevelを足す(全部指定する)が基本になるかと思います。
#言葉が浮かばず実行モデルと書いちゃいましたが、どちらかというとこの場合、評価モデルという言葉の方が正しかった気がします。他の方も仰るように、本やHyperSpecに書いてる内容を読んだ上で、色々試してみると良いんではないでしょうか。例えば、実践Common Lispには、shiroさんやsnmstsさんの解説されているようなことも含めて、比較的詳しく書いてあるようです。
#Amazonで中身を検索すると、どんな感じか確認できるので、良いと感じたら購入してみてはいかがでしょうか。
#