next up previous
Next: 6.3 define マクロ Up: 6 マクロのコンパイル Previous: 6.1 and マクロ

6.2 let マクロ

letは,

(def-scheme-macro let (bindings &rest body)
  `((lambda ,(mapcar #'car bindings) ,@body)
    ,@(mapcar #'cadr bindings)))
というマクロ定義で,局所変数 定義を与えた関数定義になります.

<cl> (scheme-macro-expand '(let ((a 1)) (list a)))
((LAMBDA (A) (LIST A)) 1)

<cl> (comp-show '(let ((a 1)) (list a)))

      ARGS  0     
      CONST 1     
      FN    
            ARGS  1     
            LVAR  0     0     ;     A     
            GVAR  LIST  
            CALL  1     
            RETURN
      CALL  1     
      RETURN


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