试图实现在Prolog中获取列表的第n个元素

use*_*833 2 prolog

我是Prolog中的新手并试图在Prolog中实现获取列表的第n个元素是我的代码但是它会抛出错误

element_at(X,[X|_],1).
element_at(X,[_|L],K) :-
   K > 1,
   K1 is K - 1,
   element_at(X,L,K1).
Run Code Online (Sandbox Code Playgroud)

我认为代码右侧第二行的X必须用其他东西替换,但我想不出任何东西.

Cap*_*liC 5

测试时不评估K. 您需要撤消订单

element_at(X,[X|_],1).
element_at(X,[_|L],K) :- element_at(X,L,K1), K is K1 + 1.
Run Code Online (Sandbox Code Playgroud)