gpt4 book ai didi

prolog - Prolog 中的不同谓词不起作用(始终为 false)

转载 作者:行者123 更新时间:2023-12-01 23:20:22 25 4
gpt4 key购买 nike

我正在使用 SWI Prolog 学习 Prolog 进行大学考试,我对这个简单的程序有一些疑问,该程序实现不同谓词,如果两个元素不同(如果它们不匹配)则为 TRUE如果匹配则说 FALSE。

这是代码:

different(X,X) :- !,
fail.

diferent(_,_).

问题是,如果我尝试在 Prolog shell 中执行以下查询,我总是得到 FALSE:

[debug] 10 ?- different(a,b).
false.

[debug] 11 ?- different(a,a).
false.

如您所见,第一个查询必须说 TRUE,因为 a 与 b 不匹配

为什么?

最佳答案

将不同的(_,_)更改为不同的(_,_)。即这是一个拼写错误。您的第二个谓词未被检查,因为它与您的查询不匹配。

程序应该是

different(X,X) :- !,fail.
different(_,_).

关于prolog - Prolog 中的不同谓词不起作用(始终为 false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15900800/

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