【发布时间】:2016-03-04 20:28:35
【问题描述】:
Prolog 的语法使用<head> :- <body> 格式的规则:
tree(G) :- acyclic(G) , connected(G).
,表示 G 的状态为树取决于状态为非循环和连接。
这个语法可以以一种隐含的方式扩展到事实。同样的例子:
connected(graphA) 建议connected(graphA):-true.
从这个意义上说,人们可以将 Prolog 事实松散地定义为始终为真的 Prolog 规则。
我的问题:在任何情况下,一个无实体的规则(在所有条件下都被假定为正确的规则)是否合适?从语法上讲,这样的规则如下所示。
graph(X).(建议graph(X):-true.)
【问题讨论】:
-
用你的术语来说,“无形规则”和“事实”有什么区别?
-
无实体规则示例:blah(X)。事实示例(定义为无身体):blah(a)。注意第一个参数使用变量。
-
我确实记得这些规则至少有一个有效用途:请参阅下面的答案。
-
这个定义是“松散”的吗?
-
@ScottHunter,并非所有总是被假定为正确的规则(换句话说,没有实体)都符合事实。例如,我在下面的答案(成员)中的递归案例是无实体的,但不是事实。换句话说,没有实体的规则并不是事实。该定义是松散的,因为事实只是部分定义。
标签: prolog