Common Lisp
Scheme では変数名と関数名の衝突を避ける必要があるため、Scheme の関数はよく lis や lst、lyst といった関数名と衝突しないような引数名を取ることになる。一方 Common Lisp では引数として使う場合に、明示的に関数の名前空間を参照する必要がある。これは上にでてきた sort のサンプルのように一般的なことである。
Common Lisp はまた、真偽値の扱いが Scheme とは異なっている。Scheme は真と偽の表現として #t と #f という特別な値を用いている。Common Lisp は、より古い LISP系言語の伝統に従ってシンボルの t と nilを使っている。Common Lisp においては、if のような条件式において任意の nil でない値が真として扱われる。このことは、いくつかのオペレータが述語として働くと同時に、後の計算に使うための有意な値を返すものとして動作する事を可能としている。
Scheme の標準規格は 末尾再帰の最適化 を要求しているが、Common Lisp の規格はしていない。ほとんどの Common Lisp 実装は末尾再帰の最適化を提供するが、それでもプログラマーが最適化宣言を使った場合のみである場合が多い。それにも関わらず、一般的な Common Lisp のコーディングスタイルは Scheme スタイルで好まれるようなあらゆる場合に再帰を使うというやり方とは異なっている。Scheme プログラマが末尾再帰で表現するものを、Common Lisp プログラマーは do、dolist、loop等の反復構文で表現する。
LISP系言語におけるマクロは、表面上は関数と同じように使われる。しかし、それは評価される式を表すというよりプログラムのソースコードの変形を表現している。
マクロはプログラマーに言語内に新しい構文フォームを作る事を可能とする。たとえば、このマクロは Perl のような言語で馴染みのある until ループのためのフォームを実現する。
すべてのマクロは、内に含むソースコードが評価、あるいはコンパイルされるよりも前に必ず展開される。マクロは抽象構文木(S 式)を受けとり、それを変更して返す関数だと考えることができる。これらの関数は、最終的なソースコードを生成するために評価器やコンパイラよりも前に呼び出される。マクロは通常の Common Lisp で記述され、任意の Common Lisp オペレータ(あるいは自作のオペレータ)を使うことができる。 上の例で使用されているバッククォート記法は一般的なコードテンプレートへの代入を単純化するために Common Lisp によって提供されているものである。
関数名のための名前空間は、データ変数のための名前空間とは分離されている。これは Common Lisp と Scheme における主要な違いである。defun、flet そして labels のようなオペレータは関数名前空間へ名前を定義する。
他の関数への引数として関数名を渡す場合には、function スペシャルオペレータ(通常 #' と略記される)を使う必要がある。最初の sort 引数では、関数名前空間にシンボル > で定義された関数名を #'> というコードで参照している。
Scheme の評価モデルはより単純で、単一の名前空間のみが存在し、引数部分だけでなくあらゆる位置で、評価順序を問わずフォームは評価される。この事が Common Lisp と Scheme のどちらかの方言で書かれたコードは、ときどき他方の経験を持つプログラマーを混乱させることになる。たとえば、Common Lisp プログラマーの多くは list あるいは string といった説明的な変数名を使用する事を好むが、これらの名称は Scheme ではローカルに関数名を上書きしてしまうという問題を起こすことになる。ただし、これには一長一短がある。名前空間が分かれているために、高階関数などに渡す関数の名前は、そのままではなく、関数の名前であることを明示する必要が発生してしまっている。
関数に独立した名前空間を持つ事が利点かどうかは、LISP コミュニティにおける論争の源となっている。この論争は一般に「Lisp-1 vs. Lisp-2 の議論」と言われる。この用語は リチャード・ガブリエル と ケント・ピットマン らによる二つの手法を広範囲にわたって比較した 1988 年の論文で作られた。
NASA Deep Space 1 に搭載された、自己修復・監視用人工知能。NASA Ames Research Center および NASA JPLによって開発された。人間の監視なしで探索機を航行させるための自律エージェント。多数のコンポーネントからなるが、その主要な3つは、EUROPA(マーズ・エクスプロレーション・ローバー のためのプランニングシステム)、EXEC(プラン実行システム)、Livingstone(モデルベース異常診断システム)である。1999年度の NASA ソフトウェア・オブ・ジ・イアー賞を受賞した。
ナレッジ・テクノロジーズ・インターナショナル社製の機械設計ソフトウェア。