call/cc-maniacs

[トップ][一覧][最近の更新]

このページには、Scheme?のcall/ccについてのノウハウを集める予定。

尚、書き手の主観が反映されている為、必ずしも正しい内容が書かれているという保証は無し。



概要/まとめ

call/cc

dynamic-wind

goto/return的用法

(call/cc
  (lambda (return)
    ...
    ...
    ...))

結論:

魔術的用法

call/ccで生成した継続を、call/ccの外に持ち出すような使い方をまとめて、ここでは「魔術的用法」と呼ぶ事にする。

「魔術的用法」で継続を用いる場合、コード全体が三つのパーツに分割される。

  1. call/ccに辿りつくまでの部分。
  2. call/cc内部のproc。
  3. call/cc内部のprocの処理が完了した以降の処理(つまり、call/cc以降)。

この性能を利用する事で、普通に実装する事が難しい、種々の「機能」を実装する事ができる。

バックトラック

amb

バックトラックを、バックトラックと意識せずに書けるようにしたもの。多分。

基本的には、プログラムの実行される実行手順構造自体を総当たり検索し、条件にマッチする値を探すような挙動を行う。上手く説明しづらいが。

コルーチン

あとで書く。

部分継続

あとで書く。

副作用

あとで書く。

応用

あとで書く。

link

外部サイトへのリンク。



最終更新 : 2007/05/28 09:16:05 JST