let による変数のバインド方法 ¶Emacs Lispでは、変数名とその値を紐付ける方法として2通りの方式がサポートされています。これらの方式によって、特定の紐付けが有効となるプログラム内の範囲が異なります。歴史的な経緯により、Emacs Lispではデフォルトで動的束縛と呼ばれる形式の変数束縛が採用されています。ただし、本マニュアルでは、特記ない限り、推奨される字句束縛という形式について解説します(将来的には、Emacsのメンテナーがデフォルトを字句束縛に変更する計画です)。他の言語でプログラミングをしたことがある方であれば、字句束縛の動作についてはすでにご存じのことでしょう。
プログラムでレキシカルバインディングを使用するには、Emacs Lispファイルの1行目に以下を追加してください:
;;; -*- lexical-binding: t -*-
これに関する詳細については、The Emacs Lisp Reference ManualのVariable Scopingを参照してください。