刚开始学习Prolog,不知道如何得到涉及“all true”的结果,例如:
preAction(4, 3).
preAction(4, 2).
preAction(2, 1).
action(4).
action(2).
action(1).
takeAction(X) :-
action(X),
preAction(X, Y),
action(Y).
预期的结果是 2,因为action(2)
而且action(1)
都是真的。但是当前结果是 4 和 2。但是preAction
4 的 是 (3,2) 并且没有action(3)
。这不是我想要的。
如果我尝试使用否定,由于 4 的 preAction 是可证明的,仍然无法弄清楚如何去做。你知道怎么做吗?