【发布时间】:2015-03-18 21:24:06
【问题描述】:
在我看来,将 DCG(定句语法)定义为 在 Prolog 中描述列表的紧凑方式,是一种糟糕的定义方式。据我所知,DCGs 不仅用于 Prolog,还用于其他编程语言,例如 Mercury。
此外,它们被称为 DCG,因为它们在一组确定子句(Horn 子句)中表示语法,这是逻辑编程的基础。
那么,如果整个 Prolog 程序可以使用明确的子句来编写,为什么 DCG 仅被定义为 一种描述 Prolog 中列表的紧凑方式?
注意:这个疑问来自SO给出的标签dcg的描述。
【问题讨论】:
-
我相信您在 SO 对 DCG 的“定义”中自己注入了形容词 solely。 ;) 所以 SO 关于 DCG 的说法是正确的(就@mat 而言),但这并不是我所说的对 DCG 目的的完整描述。
-
正是@lurker,这就是我的观点。我所说的“仅”是指这只是 CDG 的好处之一,我想我说得不对,我的错 :)
-
没问题。 Solely 意味着它是唯一的好处,而不是只是其中一个,而只是一种技术性。我认为它确实提出了一个有趣的问题。 :)