我想将一个列表在轴点P处分成两个列表,如果数字小于P,则放入L1中,如果大于P,则放入L2中。
这是我目前的代码,我能够将列表L分割成形如L1 = [[], []]的形式。但我想将列表分成两个列表L1和L2,我该怎么做?
这是我目前的代码,我能够将列表L分割成形如L1 = [[], []]的形式。但我想将列表分成两个列表L1和L2,我该怎么做?
split(L,P,L1):-
split(L,P,[],L1).
split([],_,[],[]).
split([],_,X,[X]) :- X \= [].
split([P|T],P,[],L1) :- split(T,P,[],L1).
split([P|T],P,L,[L|L1]) :- L \= [], split(T,P,[],L1).
split([H|T],P,S,L1) :- H \= P, append(S, [H], S2), split(T,P,S2,L1).