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