fork download
  1. split([],[],[],[]).
  2. split([H|T], [H|Ntail], Odd, Even) :- H < 0, split(T, Ntail, Odd, Even).
  3. split([H|T], Neg, [H|Otail], Even) :- H >= 0, ((H rem 2)=:=1), split(T, Neg, Otail, Even).
  4. split([H|T], Neg, Odd, [H|Etail]) :- H >= 0, ((H rem 2)=:=0), split(T, Neg, Odd, Etail).
  5.  
  6. program :- split([1,2,3,4,-5,-6,7,-8,9,10], X, Y, Z), write(X), write(Y), write(Z), nl.
  7.  
Success #stdin #stdout #stderr 0.02s 7460KB
stdin
Standard input is empty
stdout
[-5,-6,-8][1,3,7,9][2,4,10]
stderr
% halt