我试图找到列表的第一个和最后一个元素,使得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
答案 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).