5
很多Prolog-in-Scheme實現都在那裏。例如。 Kanren,Schelog。在Scheme中解析DCG(沒有Prolog)?
顯然在「人工智能編程範例」中,Norvig在Lisp中實現了Prolog-to-Lisp編譯器,以便使用確定子句語法。
但是有沒有更簡單的清潔方式?也許一些聰明的使用amb來避免實現一個完整的「Prolog」? 在Scheme中進行基於DCG的解析最簡單的方法是什麼?
很多Prolog-in-Scheme實現都在那裏。例如。 Kanren,Schelog。在Scheme中解析DCG(沒有Prolog)?
顯然在「人工智能編程範例」中,Norvig在Lisp中實現了Prolog-to-Lisp編譯器,以便使用確定子句語法。
但是有沒有更簡單的清潔方式?也許一些聰明的使用amb來避免實現一個完整的「Prolog」? 在Scheme中進行基於DCG的解析最簡單的方法是什麼?
DCG使用統一和回溯,所以沒有避免實現Prolog的核心。也就是說,您可以將任何純Prolog程序表示爲解析空列表的DCG。
如果你只關心DCG的一些特殊情況,比如沒有變量的情況(只適用於識別,不解析),你可能會這樣做。