prolog 和尝试解决一些练习是相当新的。给定组件的知识库
component(ElementX,ElementY,Qty).
ElementX uses ElementY in it's structure in quantity Qty.
component(car, door, 4).
component(car, wheel, 4).
component(wheel, tire, 1).
我想同时找到每个不是 ElementY 的 ElementX。
这是预期的结果
?-final_product(X).
X = car;
false.
这让我相信自从我得到这个我就不能使用削减
?-final_product(X).
X = car.
如果我不阻止回溯,我得到的只是
?-final_product(X).
X = car;
X = car;
false.
我将如何达到预期的结果?
编辑:
final_product(X):-
setof(X, (component(X, _, _), \+component(_, X, _)), Results),
member(X, Results).