我需要在 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"]).