问题是我需要编写一个能够查询数据库中产品的谓词,以便返回一个列表,其中填写了价格降低的产品名称(由“州”表示。
domains
state = reduced ; normal
element = string
list = element*
database
producte (string, integer, state)
predicates
nondeterm reduced(list)
clauses
% ---> producte( description , price , state )
producte("Enciam",2,reduced).
producte("Peix",5,normal).
producte("Llet",1,reduced).
producte("Formatge",5,normal).
%unique case
reduced([D]):-
producte(D,_,reduced).
%general case
reduced([D|L]) :-
producte(D,_, reduced),retract(producte(D,_,reduced)),reduced(L).
Goal
reduced(List).
我很感激。 现在,它给了我三种不同的解决方案。我怎么能强迫谓词给我一个解决方案?事实上,最后一个?
答案 0 :(得分:0)
由于我不使用visual-prolog,我只是提出一些found in the doc。
reduced(List) :-
List = [ Price || producte(_, Price, reduced) ].
答案 1 :(得分:0)
当列表中的第一个产品没有减少时 - 你没有这个案例的规则。