gpt4 book ai didi

prolog - 为什么 Prolog 等待

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

所以我正在为我的大学@prolog 做一项工作,我试图找到以下实践的答案:查找它们是否是两个列表之间的公共(public)元素。

我写道:

inlist(X,[X|_]).
inlist(X,[H|L]) :-
inlist(X,L).

isOneInterest([X],[X|_]).
isOneInterest([X|L1],L) :-
( inlist(X,L)
; isOneInterest(L1,L)
).

现在我知道有更好的解决方案,我会很高兴看到它们,但我的问题是:为什么 Prolog 在回答 true 后等待?当回答 false 时,它不会等待。

例子:

11 ?- isOneInterest([a,b],[a,d]).
true.

.

12 ?- isOneInterest([a,b],[s,d]).
false.

在您可以看到我必须按回车键的点(12 以上)的位置。

最佳答案

以下内容不是专门针对您的代码,而是针对一般的 Prolog 代码。

您观察到的现象背后的根本原因是:Prolog 目标可以成功多次,但最多只能失败一次。

关于prolog - 为什么 Prolog 等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766233/

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