Lisp(LISt Processing language)は、1950年代後半にマサチューセッツ工科大学で人工知能の研究のために初めて開発されました。Lisp言語の強力な機能は、編集コマンドの記述など、他の用途にも最適です。
長年にわたり数十ものLisp実装が開発されてきており、それぞれに独自の特性がある。その多くは、1960年代にMITのProject MACで書かれたMaclispから着想を得たものである。やがてMaclispの派生実装の開発者たちが集まり、Common Lispと呼ばれるLispシステムの標準を策定した。その一方で、MITのジェリー・サスマンとガイ・スティールは、簡略化されつつも非常に強力なLispの方言であるSchemeを開発した。
GNU Emacs Lispは、主にMaclispから、わずかにCommon Lispから影響を受けています。Common Lispをご存知であれば、多くの類似点に気づくことでしょう。しかし、GNU Emacsのメモリ要件を抑えるため、Common Lispの多くの機能が省略または簡略化されています。場合によっては、その簡略化があまりに著しいため、Common Lispのユーザーが非常に混乱することもあるでしょう。適宜、GNU Emacs LispがCommon Lispとどのように異なるかについて指摘します。Common Lispをご存知なくても、心配はいりません。本マニュアルは完結した内容となっています。
cl-lib ライブラリを通じて、ある程度の Common Lisp エミュレーションが利用可能です。Common Lisp Extensions の 概要 を参照してください。
Emacs LispはSchemeから全く影響を受けていません。しかし、GNUプロジェクトにはGuileと呼ばれるSchemeの実装があります。拡張性が求められるすべての新しいGNUソフトウェアにおいて、これを採用しています。