3
我正在嘗試製作一個簡單的知識庫。但是,我正在努力讓分類系統正常工作。爲什麼這個prolog程序會導致無限遞歸?
這是迄今爲止該程序:
subset(tomatoes, fruits).
subset(fruits, food).
subset(X, Z) :- subset(X, Y), subset(Y, Z), not(X==Y), not(Y==Z), not(X==Z).
member(X, Z) :- member(X, Y), subset(Y, Z).
member(t1, tomatoes).
查詢:
member(t1,tomatoes).
ERROR: Out of local stack
Exception: (1,765,494) member(t1, _G28504) ? abort
% Execution Aborted
我對Prolog有點生疏,但是你有沒有試過把你的事實放在第一位?如在移動成員(t1,西紅柿)高於遞歸規則? – acjay