【发布时间】:2015-10-15 03:54:29
【问题描述】:
smb 能解释为什么这是正确吗?
not(G).
not(G) :- G, !, fail.
【问题讨论】:
-
Prolog 发现任何东西都是 true,只要它可以在它的 KB 中找到匹配的东西。所以 not(anything) 对 Prolog 来说是真的,因为 not(G) 是真的,而且 G 可以是 anything
-
@false 'smb' 是一个非常懒惰的人的'某人'
-
@Kemal P. 扩展 Ruben 的答案并重复答案:prolog 将尝试通过 按顺序 尝试基础中的谓词来达到您的目标。 (事实上,这个“默认选择功能”是语言的一部分)。如果你颠倒你的谓词的顺序,你会得到一个有效的
not -
@Ruben
true会更清楚地命名为proved。