2
我有這樣的嵌套列表:跳過列表元素的列表
list = [[1, 2, 3, 4],
[2, 7, 2, 1],
[3, 3, 7, 5],
[4, 4, 1, 7]]
而且我想跳過此嵌套列表的第一個列表,每個列表的第一個元素。我希望它變成了這個樣子:
list = [[7, 2, 1],
[3, 7, 5],
[4, 1, 7]]
到目前爲止,我有這樣的:
% skip first list in list of lists
skip_first_list([_|Tail], Tail).
% attemping to skip first element in each of the lists
skip_first_list([[_ | HeadTail] | Tail], X) :-
skip_first_list(Tail, R),
append(R, [HeadTail], X).
不產生正確的結果:雖然我這個答案後,我
?- skip_first_list([[1, 2, 3, 4], [2, 7, 2, 1], [3, 3, 7, 5], [4, 4, 1, 7]], X).
X = [[2, 7, 2, 1], [3, 3, 7, 5], [4, 4, 1, 7]] ;
X = [[3, 3, 7, 5], [4, 4, 1, 7], [2, 3, 4]] ;
X = [[4, 4, 1, 7], [7, 2, 1], [2, 3, 4]] ;
X = [[3, 7, 5], [7, 2, 1], [2, 3, 4]] ;
false.
:
X = [[7, 2, 1], [3, 7, 5], [4, 1, 7]]
我的結果到目前爲止似乎要顯示我正在追加反向/不正確的順序,我該如何解決這個問題?我不太瞭解Prolog評估表達式的順序。任何任何將不勝感激。