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,2017 CopyLeft 日置尋久, 櫻川貴司

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

リンク切れのリンクを削除・更新。有用なリンクを追加。(2017/4)