gpt4 book ai didi

prolog - prolog 的独特结果

转载 作者:行者123 更新时间:2023-12-04 17:14:11 27 4
gpt4 key购买 nike

有没有一种简单的方法可以让 prolog 中的查询只返回每个结果一次?

例如我正在尝试类似的东西:

deadly(Xn) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xn)), safe(Xp).
deadly(Xp) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xp)), safe(Xn).

deadly(X).

并得到
X = 5

X = 5

X = 5

X = 5

....

对我没用。

最佳答案

您可以做的一件事是申请 setof/3到生成解决方案的谓词。但请注意 setof/3通过应用 sort/2 实现到 bagof/3 传递的结果(至少在 SWI-Prolog 中是这样)。因此,如果您的解决方案生成器永远运行,那么 setof/3永远不会被应用...

所以我会说尝试编程以便不生成重复项,即通过在有意义的地方使用剪切(!)。

关于prolog - prolog 的独特结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/724358/

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