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"]).
これまでに書いたことの問題は何ですか? –
ほぼ完璧に動作します。唯一の問題は、その事実のすべての製品を検証しないということです。リストにデータベースよりも少ない製品が含まれているかどうか、述語は「はい」と回答します。 – mkll