fork download
  1. proceed(0, L, L).
  2. proceed(_, [], []).
  3. proceed(N, [H|T], [NewH|Output]) :-
  4. N > 0,
  5. NewN is N - 1,
  6. NewH is H - 1,
  7. proceed(NewN, T, Output).
  8.  
  9. :- proceed(3,[10,9,8,7,6,5,4,3,2,1],X), write(X), nl,
  10. proceed(30,[10,9,8,7,6,5,4,3,2,1],Y), write(Y).
Success #stdin #stdout #stderr 0.02s 6160KB
stdin
Standard input is empty
stdout
[9, 8, 7, 7, 6, 5, 4, 3, 2, 1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
stderr