Emacs
は変数の束縛の仕組みを lexical-binding
切り替える事ができる。この値が nil
の場合は、動的束縛として扱われる。非 nil
の場合は、字句束縛として扱われる。ラムダ式を評価した時に返されるオブジェクトも異なる。
(setq lexical-binding t)
(lambda (r) nil)
(closure (t) (r) nil)
(lambda (r) nil)
(setq lexical-binding nil)
(lambda (r) nil)
(lambda (r) nil)