我正在研究一个我在网上找到的例子,试图理解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