7

Prolog-in-Schemeの実装はたくさんあります。例:Kanren、Schelog。

どうやら「AIプログラミングのパラダイム」では、NorvigはDefinite Clause Grammarsを使用するために、LispにProlog-to-Lispコンパイラを実装しています。

しかし、もっと簡単でクリーンな方法はありますか?たぶん、完全な「プロローグ」の実装を避けるために、ambを巧妙に使用することはできますか?SchemeでDCGベースの解析を行う最も簡単な方法は何ですか?

4

1 に答える 1

5

DCGは統合とバックトラッキングの両方を使用するため、Prologのコアの実装を回避することはできません。つまり、純粋なPrologプログラムを、空のリストを解析するDCGとして表すことができます。

変数のないもの(解析ではなく認識にのみ適している)など、DCGの特殊なケースのみを気にする場合にこれを行うことができます。

于 2009-12-03T10:50:13.560 に答える