next up previous
Next: 13.4 setfマクロ Up: 13 マクロ Previous: 13.2 バッククオート

13.3 マクロの展開

マクロ定義がどのように展開されるかを調べるために,macroexpandという関 数があります. defunは実はマクロです.たとえば,

> (macroexpand '(defun test (x) a b c))

(PROGN
  (SETF (SYMBOL-FUNCTION 'TEST)
        #'(LAMBDA (X) (BLOCK TEST a b c)))
  'TEST)
となっており,関数定義は,シンボル の symbol-function 領域に 関数本体であるラムダ式を代入するということを行なうことになっています.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日