给定列表的最后n个元素创建谓词

时间:2014-12-16 11:06:21

标签: prolog

示例:

?-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).

1 个答案:

答案 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).