我想按每个列表的深度对深度列表进行排序。但我的代码只分离元素,而不是对它们进行排序。到目前为止,我还不了解差异列表以便以其他方式对它们进行排序,所以请让我看看我的代码有什么问题。
insert_ord(X, [H|T], [H|R]):-
X > H, !,
insert_ord(X, T, R).
insert_ord(X, T, [X|T]).
ins_sort([H|T], R):-
ins_sort(T, R1),
insert_ord(H, R1, R).
ins_sort([], []).
ord([H|L], [R1|R]):-
is_list(H),
ord(H, R1),
ord(L,R).
ord(L,R):-
ins_sort(L, R).
ord([],[]).
因此,这个谓词应该产生以下结果:
ord([[[[1]]], 2, [5,[4],7], [[5],4], [5,[0,9]]], R).
R = [2, [5,[0,9]], [[5],4], [5,[4],7], [[[1]]]] ;
false