私はLISP言語を学びたいと思っています。私のエディターはemacsなので、emacsLISPが好きです。
LISP、emacs LISP、またはcommon lispを学ぶための提案を誰かに教えてもらえますか?
これら2つの主な違いは何ですか?
特に初心者レベルでは、かなりのクロスオーバーがあります。そのため、どちらから始めても、ほとんどがもう一方に移行します。
主な違いのいくつか:
elispは伝統的に動的スコープルールを使用してきました。 Common LISPは、字句スコープ規則を使用します。動的スコープを使用すると、関数は関数の呼び出しで宣言されたローカル変数にアクセスでき、一般的に支持されなくなりました。 Emacsにはlexical-let
字句スコープをシミュレートするフォームとemacsの最近のバージョンでは、関数ごとにオプションの字句スコープを使用できます。
elispにはクロージャがないため、関数の作成やカリー化が困難です。あります apply-partially
カリー化と同様に機能する関数。 lexical-let
Emacs 24で導入されたフォームにより、字句スコープを介してクロージャを生成できます。
時間をかけて構築されてきたCommonLISPライブラリの多くは、elispでは利用できません。サブセットはelispcl
パッケージによって提供されます
elispは末尾呼び出しの最適化を行いません。
これらのEmacs-Wikiページは、2つのLisp間の関係とそれらの違いに関する情報を提供します。