Scheme(スキーム)は、ガイ・スティール(Guy Lewis Steele Jr.)とジェラルド・ジェイ・サスマン(Gerald Jay Sussman)によって開発された。
LISPの方言の1つで、
関数型
プログラミング言語としての側面がよく知られたマルチパラダイムプログラミング言語である。他の
LISP言語と比べてもシンプルで一貫した思想に基づく点が特徴である。
Schemeは、実
行時の
スナップショットを抽象化した継続(コンティニュエーション)、静的
スコープ、末尾最適化を言語として保証するなどの機能を持つ。
Schemeが出てくるまでの他の
LISP方言では
変数束縛が実
行履歴を元に決定される動的
スコープを採用することが多かったが、
Schemeでは
変数の意味がコード上のネスティングで定まるという静的
スコープを持つ。静的
スコープは
Common Lispに採用された。
Schemeは、アメリカ合衆国では大学でのプログラミング教育に広く使われている。
MITでプログラミング教育に使われている処理系
実装MIT
Schemeは、多くの
プラットフォームで動作する。
サスマンらによる『計算機プログラムの構造と解釈 第二版』(ISBN 489471163X)は、演習や説明に
Schemeを使ったコンピュータサイエンスの優れた教科書である。
言語仕様は、文書The Revised
5 Report on the Algorithmic Language
Scheme(R5RSと呼ばれる)で定められる。
LISP系言語は
Schemeと
Common Lispを二大潮流とするが、提案された機能を原則全て導入する
Common Lispに対して、メンバーの全員一致を原則とする
Schemeという特徴を持っている。
なお、2007年9月に新仕様R6RSが成立した。4部構成となり、R5RSに比べおよそ3倍の文章量となった。今までは小さな言語仕様に対してのこだわりが見られたが、
Unicodeサポート等の実用的な言語として必要な要素が盛り込まれている点が特徴的である。しかし、多くの機能が盛り込まれたにもかかわらず細部の練りこみが不十分であるといった批判もあり、非公式にR5RSを拡張する形でERR5RS(Extended R5RS
Scheme)という規格を検討するコミュニティも現れている。