「一瞬簡単と思うけど、ちょっと考えたらかなり難しそう」だと思ったループ検出器を組み込むことができました。
もちろん、”質問システムPython実装”での話です。
”(married Mickey ?who)”がきちんと停止した時は感動でした。
ちなみに、組み込んだのはGAE版を作る前に作ったCUI版です。
GAE版でいきなりやるのは難しくて手間がかかりそうですからね。
結局、「実行履歴保持機能付きループ検出判定クラス」を用意して、qevalに組み込む形で解決したのですが、schemeの超循環言語として実装している場合は、やたら面倒くさそうな気がします。
来週はこれをGAE版に組み込んでみようと思います。
※ちなみにGAE版は昨日日記を書いた時点よりずいぶん速くなっています。遅いときは、(lives-near ?who (Bitdiddle Ben))が返ってきませんでした・・・