SchemeでDCGを使用した解析(Prologなし)?
質問
Prolog-in-Schemeの実装はたくさんあります。例えば。 Kanren、Schelog。
「パラダイムオブAIプログラミング」にあるようです。 Norvigは、定節文法を使用するために、LispにProlog-to-Lispコンパイラを実装しています。
しかし、よりシンプルでクリーンな方法はありますか?たぶん、完全な「プロローグ」の実装を回避するためのambの巧妙な使用でしょうか? SchemeでDCGベースの解析を行う最も簡単な方法は何ですか?
解決
DCGは統合とバックトラッキングの両方を使用するため、Prologのコアを実装することを避けることはできません。つまり、空のリストを解析するDCGとして純粋なPrologプログラムを表すことができます。
DCGの特殊なケース、たとえば変数のないもの(認識ではなく、解析ではない)のみに関心がある場合に、それを行うことができます。
所属していません StackOverflow