SICP 問題4.67 ループ検出器の実装

 「一瞬簡単と思うけど、ちょっと考えたらかなり難しそう」だと思ったループ検出器を組み込むことができました。

 もちろん、”質問システムPython実装”での話です。

 ”(married Mickey ?who)”がきちんと停止した時は感動でした。

 ちなみに、組み込んだのはGAE版を作る前に作ったCUI版です。

 GAE版でいきなりやるのは難しくて手間がかかりそうですからね。

 結局、「実行履歴保持機能付きループ検出判定クラス」を用意して、qevalに組み込む形で解決したのですが、schemeの超循環言語として実装している場合は、やたら面倒くさそうな気がします。

 来週はこれをGAE版に組み込んでみようと思います。

 ※ちなみにGAE版は昨日日記を書いた時点よりずいぶん速くなっています。遅いときは、(lives-near ?who (Bitdiddle Ben))が返ってきませんでした・・・