M-99 マクロ99問
http://common-lisp-users.jp/index.cgi?M-99
問2:INC1を作成せよ
テーマ:変数の捕捉
(let ((x 0))
(inc1 x)
x)
≡ (let ((x 0))
(setq x (+ x 1)))
;=> 1
解:
CL-USER> (defmacro inc1 (x)
`(setq ,x (+ ,x 1)))
INC1
CL-USER> (let ((x 0))
(inc1 x)
x)
1
CL-USER> (let ((x 10))
(inc1 x)
x)
11
0 件のコメント:
コメントを投稿