0
我有點prolog noob這就是爲什麼我問這裏,我找不到其他地方。比較列表的第一個和最後一個元素並追加
我試圖做的事情是這樣的功能,以不同的方式:
firstlast([H,H]).
firstlast([F,_|T]):- firstlast([F|T]).
它basicly發現,如果第一和最後一個元素與兩個或多個元素的列表相同。
現在我想用append來做這個函數,所以不用遞歸而只需要一個單獨的調用來追加。它應該如何工作
append([],U,U).
append([H|T],U,[H|V]) :- append(T,U,V).
例子:
firslasta([1,2,3,4,1]).
true.
firstlasta([1,3,4,1,5]).
false-
firstlasta([2,5,2,3,6,2]).
true.
任何幫助,這將大大appriciated :)。
append需要三個列表。 '追加(A,B,A + B)'。你從來沒有分配過中間名單。 – User
值得注意的是'append/3'本身是通過遞歸完成的,所以我認爲你不會通過使用它來節省任何計算能力。你的第一個答案似乎對我更優雅。 –