Prolog:获取列表中的某些元素

时间:2016-11-06 17:57:09

标签: prolog

我试图找到列表的第一个和最后一个元素,使得lastFirstElt(X,L)输出仅包含第一个和最后一个元素的列表L.我能够得到第一个和最后一个元素,我试图将它组合成一个列表L,它只包含第一个和最后一个元素,但我不知道怎么能让它工作:

first(X, [X|_]). % to get first element
last(X, [X]).% last element if it is only one
last(X,[_|T]) :- last(X,T). % otherwise recurs to the last 
lastFirstElt(X, L):- first(X,L), last(X,L). % Here, I was expecting the first and last element will be joined into List L

1 个答案:

答案 0 :(得分:0)

lastFirstElt(X, L):- first(X,L), last(X,L).

在此,您要说first的结果,last的结果和lastFirstElt的结果是相同的值,即X

这就是你想要的:

lastFirstElt([First, Last], L):- first(First,L), last(Last,L).