0
我需要在Prolog中開發一個謂詞,能夠將一個列表與事實進行比較。換句話說,如果列表中的產品名稱也都在數據庫中(事實),那麼它必須說「是」,否則「否」。 謂詞明顯地收到產品名稱的列表。目前,我有這段代碼。檢查列表和數據庫[Prolog]
domains
state = reduced ; normal
element = string
list = element*
database
producte (string, integer, state)
predicates
nondeterm check(list)
clauses
% ---> producte(description , price , state)
producte("Enciam",2,normal).
producte("Llet",1,reduced).
producte("Formatge",5,normal).
%unique case
check([Name]):-
producte([Name],_,_).
%general case
check([D|T]):-
producte(D,_,_),
check(T).
Goal
check(["Enciam","Llet","Formatge"]).
到目前爲止所寫的問題是......什麼? – 2012-01-05 19:32:58
它幾乎完美的作品。唯一的問題是,不能驗證事實中的所有產品。我的意思是,列表中是否包含比數據庫更少的產品,謂詞也會回答「是」。 – mkll 2012-01-06 17:48:44