我正在研究一個我在網上找到的例子,試圖理解Prolog返回的內容。對於這個代碼在這裏...爲什麼不是這個prolog函數返回所有有效值? (參數沒有充分實例化)
element_at(X,[X|_],1).
element_at(X,[_|L],K) :-
K > 1,
K1 is K - 1,
element_at(X,L,K1).
這工作...
?- element_at(x, [a,b,c,x,x,d,e], Pos).
但這並不...我預計代碼返回有效值列表,例如.. 。
?- element_at(x, [a,b,c,x,x,d,e], Pos).
Pos = 4;
Pos = 5;
而是我得到ERROR: >/2: Arguments are not sufficiently instantiated
什麼修改我得到它返回有效數值F或Pos
?
我假設你使用*聲明算術意味着*。這是一個非常有效且非常好的用例。 – mat 2013-04-08 06:25:24
@mat:謝謝,我會編輯帖子 – CapelliC 2013-04-08 08:02:10