gpt4 book ai didi

prolog - Prolog 中不相等且不统一

转载 作者:行者123 更新时间:2023-12-02 21:46:31 24 4
gpt4 key购买 nike

Prolog 中 A\= B 和 not(A==B) 有什么区别?

我找到了这个http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse5和这个维基页面 http://en.wikibooks.org/wiki/Prolog/Built-in_predicates但这对我没有帮助,因为没有澄清差异,也没有\= 的简短含义。

谢谢。

最佳答案

A\= B 相当于 not (A = B)

所以我们先比较一下=/2==/2;来自 swi-prolog 手册:

?Term1 = ?Term2
Unify Term1 with Term2. True if the unification succeeds

@Term1 == @Term2
True if Term1 is equivalent to Term2.

请注意,=/2 尝试统一术语,如果成功,则为 true,而 ==/2 只是执行检查:

?- X = 1.
X = 1.
(implicit true.)

同时

?- X == 1.
false.

还有:

?- X = Y.
X = Y.

?- X == Y.
false.

现在,not/1 将反转结果,如果 =/2==/2 为 false,则结果为 true。
对于 ==/2 没有什么复杂的;如果现在条款相同,则返回 false,否则返回 true。
对于 =/2 你应该记住所有的统一都是暂时的:

?- \+ (\+ X = 1), print(X).
_G399
true.

(_G399 表示 X 未实例化)

关于prolog - Prolog 中不相等且不统一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com