Schemeへの道

まえがき

世の中には様々なプログラミング言語があるが,本文書では,Lispプログラミング言語の一つの方言であるScheme(スキーム)を紹介する.ここではSchemeを直観的に理解することをまず目標として,形式的に完全であるかどうかにはこだわらないことにする.
※見た目にもあまりこだわらないことにする:-)

より詳しくは,

などの参考書や,WWWのリソース などを参照するとよい.

本文書は,主に上記の文献を参考にして筆者がまとめたものであり, これらの参考文献に負うところが大である. 特に,「評価環境のモデル」と「クロージャーとオブジェクト」では,筆者がSchemeを学習し,大いに影響を受けた"Structure and Interpretation of Computer Programs"で使われている図式のスタイルをそのまま利用しているので,ここにそれを記しておく. またその中の例題も同じテーマのものを使わせてもらっている.
※なお言うまでもないが,本文書に誤りがあれば,それは筆者の誤りである;-)


もくじ

  1. はじめのいっぽ
  2. 変数・関数
    1. 変数のスコープ
    2. let, let*, letrec
  3. データ
  4. フォーム・評価・クォート
  5. S式とconsセル
  6. リスト処理関数
  7. 条件式
    1. 述語
  8. 再帰呼出し
    1. do式
  9. lambda式
  10. 評価環境のモデル
    1. クロージャーとオブジェクト
  11. 継続
  12. その他諸々
  13. さらに先へ

注意

Schemeの処理系には,さまざまなものがある.

	elk
	guile	
	scm
	MIT scheme
	TUT scheme
	…
もちろんどのScheme処理系を用いても,数値演算などを実行したときの計算結果は同じであるが,変数・関数定義,変数への代入の式に対する返り値は,Schemeの仕様書には定められておらず,処理系の実装に委ねられている.

本文書においては,多くの実行例を挙げているが,必ずしも1つのScheme処理系を想定しておらず,その都度分かりやすい形式でシステムからの応答を表している.


1998-2005 CopyLeft 日置 尋久

本文書はCopyleftに則り,著作権表示,参考文献のリストおよびこの但書きを全て変更しないで,添付する場合にのみ再配布可能です.本文の内容を変更した場合は,その変更が明らかになるようにしてください.