返回Prolog中给定列表的第三个到最后一个元素

时间:2015-12-02 02:17:25

标签: prolog

我是使用Prolog的新手,我想编写一个程序来计算给定列表的倒数第三个元素。 例如

ThirdLast ([1, 2, 3, 4, 5] , Ans).

会给我:

Ans = [3, 4, 5]

我做了这个,但没有工作

len([],0). 
len([_|T],N)  :-  len(T,X),  N  is  X+1.
ThirdLast([ ],0)
ThirdLast([H|L1], X):-(len(L1,N)==2), X is H.
ThirdLast ([H|L1],X):-(len(L1,N)>2),ThirdLast (L1,X).

任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用忽略前两个元素的简单规则来执行此操作:

tail3([_,_|T], T).

前两个元素与_统一,然后被抛弃。列表的其余部分与T统一,这是我们想要生成的结果。

Demo.