1
我試圖創建一個查詢,還給了以下內容:列表操作與序言
sky([1,2,3,4,5,6],X).
X = [1,3,5,2,6,4]
也就是說,它需要一個列表的所有其他元素,並做了同樣的剩餘名單和穿一切在一起。
這是我的代碼到目前爲止。
sky([X|Y], Skied):-
split([X|Y],Z1),
split(X,Z2),
sky(Z2,Z3),
append(Z1,Z3,Skied).
sky([],[]).
split([X,_|T], [X|R]):-
split(T,R).
split([X|[]], [X]).
split([],[]).
有人可以解釋爲什麼它不會工作,它背後的過程,就像一個視覺指南。謝謝!
但是如果名單是什麼長?這會產生錯誤的結果,因爲我們不會從剩下的列表中取出其他所有元素等等。期望的輸出與您的輸出不同 – DoubleOseven
現在我看到您想要[1,3,5,2,6,4]但它不是在你的描述中清楚你想要什麼。可以更清楚你要問什麼,或者給出另一個例子? – coder
假設我們有以下清單:[1,2,3,4,5,6,7,8,9]輸出應該是:[1,3,5,7,9,2,6,4,8 ]。列表中的其他元素和剩下的列表以及剩餘列表中的其他元素......應該取出並最終放在一起。這是否有意義?感覺我不好解釋:s – DoubleOseven