我想基于信息的集合,以获得三个项目的列表及其相关的信息:Prolog的未定义的程序
product(I):-
I = [_,_,_,_], %Type,Brand,Category,Value
cheaper(item(apple,_,_),item(_,kay,_,_),I),
cheaper(item(bar,_,_,_),item(_,_,fruit,_),I),
member(item(_,kay,_,2),I),
member(item(apple,granny,_,_),I),
member(item(bar,_,chocolate,_),I),
/* Below not given */
member(item(cracker,_,_,_),I),
member(item(_,_,biscuit,_),I),
member(item(_,_,_,4),I),
member(item(_,_,_,5),I).
cheaper(X,Y,H) :- %Used to determine the item values
item(X,_,_,A),
item(Y,_,_,B),
A<B.
当我尝试运行它,我遇到了一个错误:
?- product(I).
ERROR: cheaper/3: Undefined procedure: item/4
Exception: (8) item(item(apple, _G3604, _G3605), _G3651, _G3652, _G3653) ?
据我所知,item
不是一个过程,但是我可以用什么来检查苹果的值与bar的值?
你已经用两个参数定义它,而不是三个。这是错误信息告诉你的。 – 2014-09-25 08:08:33
谢谢,我现在看到它。 – Alpine 2014-09-25 08:10:38