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评估表达式的顺序。任何任何将不胜感激。