Parsing 在Scheme中使用DCGs进行解析(不使用Prolog)?

Parsing 在Scheme中使用DCGs进行解析(不使用Prolog)?,parsing,scheme,prolog,dcg,Parsing,Scheme,Prolog,Dcg,方案实现中有很多Prolog。例如,Kanren、Schelog 显然,在“人工智能编程的范例”中,诺维格用Lisp实现了从Prolog到Lisp的编译器,以便使用定冠词语法 但是有更简单更干净的方法吗?也许可以巧妙地使用amb来避免实现完整的“Prolog”? 在Scheme中使用基于DCG的解析的最简单方法是什么 DCG同时使用统一和回溯,因此无法避免实现Prolog的核心。也就是说,您可以将任何纯Prolog程序表示为解析空列表的DCG 如果您只关心DCG的一些特殊情况,比如没有变量的DC

方案实现中有很多Prolog。例如,Kanren、Schelog

显然,在“人工智能编程的范例”中,诺维格用Lisp实现了从Prolog到Lisp的编译器,以便使用定冠词语法

但是有更简单更干净的方法吗?也许可以巧妙地使用amb来避免实现完整的“Prolog”?
在Scheme中使用基于DCG的解析的最简单方法是什么

DCG同时使用统一和回溯,因此无法避免实现Prolog的核心。也就是说,您可以将任何纯Prolog程序表示为解析空列表的DCG

如果您只关心DCG的一些特殊情况,比如没有变量的DCG(只适用于识别,而不适用于解析),您可能会这样做