- 575 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:10:32 ]
- C言語風に言い換えれば束縛という名詞は変数のアドレス。
(define x 100) (define y 1000) (define-syntax foo (syntax-rules () ((foo y) (+ x y)))) ;パターン(foo y)に現れていなくてテンプレート(+ x y)に現れている識別子は+とx ;さらに自由識別子だから ;+とxは挿入された場所の字句的束縛ではなく ;マクロ定義された場所の字句的束縛を持つ ;yはマクロに於ける仮引数だからマクロ使用の式の値になる (let ((x 10)) (foo y)) -> 1100 (let ((x 10)) (foo x)) -> 110 (let ((y 1)) (foo x)) -> 200 (let ((y 1)) (foo y)) -> 101 (let ((+ -)) (foo 10000)) -> 10100
|

|