prolog的独特结果

BCS*_*BCS 5 prolog

是否有一种简单的方法在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).
Run Code Online (Sandbox Code Playgroud)

并得到

X = 5

X = 5

X = 5

X = 5

....
Run Code Online (Sandbox Code Playgroud)

不是对我有用.

Mar*_*usQ 1

如果没有更多代码,很难说,但您可能正在寻找剪切运算符 ( !)。如果您想发布的定义foo,我(或关注的其他人)也许能够给出详细/具体的答案。