実行するまで分からない動的なスコープを
ダイナミックスコープという。
字面を見てスコープが分かるスコープをレキスカルスコープという。
Emacs Lispはダイナミックスコープであり、
Common Lispはレキシカルスコープという。
下記はダイナミックスコープの例。
大きなコードになるとおかしな挙動になるから注意する。
(defun f1 (func) (let ((v 'internal)) (funcall func))) (let ((v 'external)) (f1 (lambda () v))) ; => internal
P199
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/26
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 220回
- この商品を含むブログを見る