fork download
  1. decomp([],[],0,0).
  2.  
  3. decomp([E|T], [E|R1], P, I):-
  4. 0 is E mod 2,
  5. decomp(T,R1,P1,I),
  6. P is 1 + P1.
  7.  
  8. decomp([E|T],R,P,I):-
  9. 1 is E mod 2,
  10. decomp(T,R1,P,I1),
  11. append(E,R1,R),
  12. I is 1 + I1.
  13.  
  14. append(E,[],[E]).
  15.  
  16. append(E,[A|St],[A|Et]):-
  17. append(E,St,Et).
  18.  
  19.  
  20. :- decomp([2,3,4,5,6],X,Y,Z), writeln(X), writeln(Y), writeln(Z).
Success #stdin #stdout #stderr 0.02s 6204KB
stdin
Standard input is empty
stdout
[2, 4, 6, 5, 3]
3
2
stderr