Scheme
基本的な仕様はLispを踏襲し、原則としてすべての処理を関数の定義と呼び出しの組み合わせとして記述する。変数名の衝突を自動的に回避するハイジニックマクロ(hygienic macro)、静的スコープ(レキシカルスコープ)などの特徴がよく知られる。
また、ユニークな特徴として「継続渡し」および「第一級継続」と呼ばれる仕様がある。「継続」(continuation)とは、プログラムのある実行時点における未実行の残り部分のことで、Schemeではcall/cc(call with current continuation)という特殊な関数を用いてその時点における継続を関数化して別の関数に引数として渡すことができる。これを利用して、例えば深いネストから一気に脱出する大域脱出処理をシンプルに記述するといったことができる。
Schemeは1975年にマサチューセッツ工科大学(MIT)のガイ・スティール・ジュニア(Guy Lewis Steele Jr.)氏とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)氏が最初の版を開発・公開した。1990年にはIEEEによって仕様が標準化された。
Schemeの標準規格は “Revisedn Report on the Algorithmic Language Scheme” (nの部分に版数が入る)という文書で発行され、「RnRS」と略される。1998年の第5版であれば「R5RS」と呼ばれる。
実用上はあまり広く普及してはいないが、仕様がシンプルなため数多くの処理系が公開されており、大学や研究機関における計算機科学の教育や研究では広く知られた存在である。
(2019.8.19更新)