この記事はEmacs Advent Calenderの4日目です。はじめてのadvent calenderで何を書けば良いか考えてたのですが、emacs(emacs lisp)ならでは*1機能を紹介することにします。 dynamic scope / lexical scope 最近使われる言語*2の多くがlexical scopeを採用しているのに対し、emacs-lispはdynamic scopeです。lexical-scopeは値の束縛が定義の際に決まるのに対し、dynamic-scopeは実行時に束縛値が定まります。 とりあえず、ここでlecial-scopeのschemeと比較してdynamic scopeとlexical scopeの違いの例を紹介します。 emacs-lisp(dynamic-scope) (let ((x "in definition")) (defun f