4. 代入を簡略化するマクロ 4.1. はじめに 今回は値を代入するマクロについて解説します。値を代入するマクロとしては setf がありますが、タイプ量が多くなりがちな欠点があります。 ここでは、単に値を代入するマクロ、変数を操作してその結果をもともとの変数に 代入するマクロ、さらに一般的な代入マクロについて述べたいと思います。 4.2. 単に値を代入するマクロ 単に値を代入するだけなら、新しく定義するマクロの中で setf がそのまま使えます。 例として、引数を全て同じ値にセットする allfonlisp を取り上げます。 allf を使って、全ての引数を t または nil にセットする tfonlisp, nilfonlisp が定義できます。 (defmacro allf (val &rest args) ; (1) (let ((gval (gensym))) `(let ((