我想基於信息的集合,以獲得三個項目的列表及其相關的信息: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