読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

ダイナミックスコープとレキシカルスコープ

Emacs Lisp

実行するまで分からない動的なスコープを
ダイナミックスコープという。

字面を見てスコープが分かるスコープをレキスカルスコープという。

Emacs Lispはダイナミックスコープであり、
Common Lispはレキシカルスコープという。

下記はダイナミックスコープの例。
大きなコードになるとおかしな挙動になるから注意する。

(defun f1 (func)
  (let ((v 'internal))
    (funcall func)))
(let ((v 'external))
  (f1 (lambda () v)))			; => internal

P199

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル