マクロ::CommonLisp

7.1 マクロ

システムがマクロフォームを評価するときは,
マクロ名に付随するマクロ展開関数によって,
マクロフォームを別のフォームに展開する。(マクロ展開する)

macroexpand

どのようにマクロ展開されるかを調べる関数。
(macroexpand 式)
(macroexpand '(incf x))

special-operator-p

マクロ展開は時間がかかるから,
使用頻度の高いものはスペシャルフォームとして実装されている。
> (special-operator-p setq)
t
> (special-operator-p incf)
nil


7.3 マクロの定義

マクロを定義するとは,マクロ展開関数を定義し,
それを特定の記号と結びつけることである。


途中

最終更新:2011年10月07日 17:37