2009年 01月 24日

非決定性計算 on JSDeferred


http://subtech.g.hatena.ne.jp/cho45/20080809/1218213154 の続き (いつのだよ)

JSDefrred で callcc を書いたりしてやっと実装できた。クソ遅くて意味ないけど満足した。ポイントは amb が Scheme の amb そのままであるところ (見比べてそのまんまだというのがわかるはず……)

JSDeferred の書きかたがわかりにくい。amb 1つずつを分けて実行させないと (それぞれについて継続を生成して管理する) いけないので、JSDeferred の場合コメントアウトされている部分のような形になってしまう。

これだと問題を書くのが面倒なので amb1 っていう関数使って処理の列を一括生成してる。

http://svn.coderepos.org/share/lang/javascript/jsdeferred/trunk/sample.html#amb