<cl> (scheme-macro-expand '(define (test a) (list a))) (NAME! (SET! TEST (LAMBDA (A) (LIST A))) 'TEST)ここでは,name!という 関数を作ってそれを使うマクロとして 定義することを考えます.
<cl> (comp-show '(define a 10)) ARGS 0 CONST 10 GSET A CONST A GVAR NAME! CALL 2 RETURN NIL <cl> (comp-show '(define (a x) (* x 10))) ARGS 0 FN ARGS 1 LVAR 0 0 ; X CONST 10 GVAR * CALL 2 RETURN GSET A CONST A GVAR NAME! CALL 2 RETURN NIL <cl> (comp-show '(define (test a) (list a))) ARGS 0 FN ARGS 1 LVAR 0 0 ; A GVAR LIST CALL 1 RETURN GSET TEST CONST TEST GVAR NAME! CALL 2 RETURNという形のコードを生成します.