在prolog中如何将X插入排序列表中的正确位置?
我的尝试:
insert(X,[Y|Rest],[X,Y|Rest]):-
X @< Y;
insert(X,Rest,BiggerRest).
答案 0 :(得分:4)
你走在正确的轨道上,但你需要做出这三种情况。
insert(X, [], [X]).
insert(X, [Y|Rest], [X,Y|Rest]) :-
X @< Y, !.
insert(X, [Y|Rest0], [Y|Rest]) :-
insert(X, Rest0, Rest).