Scheme

概要

Schemeとは、関数型プログラミング言語Lispから派生した言語の一つ。Lisp系言語の中では仕様が比較的シンプルで習得や理解がしやすいと言われる。

基本的な仕様は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更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。