代码之家  ›  专栏  ›  技术社区  ›  Mark Bolusmjak

在方案中使用DCG解析(不带prolog)?

  •  5
  • Mark Bolusmjak  · 技术社区  · 15 年前

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

    显然,在“人工智能编程范例”中,norvig在lisp中实现了对lisp编译器的prolog,以便使用明确的子句语法。

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

    1 回复  |  直到 13 年前
        1
  •  4
  •   Darius Bacon    15 年前

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

    如果您只关心DCG的一些特殊情况,比如没有变量的情况(只适合于识别,而不是解析),那么您可以这样做。

    推荐文章