示例:
?-lastN([1,2,3,4],3,T).
T = [2,3,4]
这就是#39; m写道:
lastN(L,N,R):- length(L,X), X1 is X-N, lastT(L, N,R).
lastT(L,0,L).
lastT(X,[H|T],L):- X2 is X-1, lastT(T,X2,L).
答案 0 :(得分:0)
我认为问题是'谓词来获取列表中的最后N个元素',这就是你的意思。在计算了必须丢弃多少元素之后,它是对第一个元素的简单丢弃,对吧?它也没有处理所有不正确的输入
lastN(L,N,R):- length(L,X), X1 is X-N, lastT(L,X1,R).
lastT(L,0,L).
lastT([H|T],X,L):- X2 is X-1, lastT(T,X2,L).