fork(2) download
  1. :- set_prolog_flag(verbose,silent).
  2. :- prompt(_, '').
  3. :- use_module(library(readutil)).
  4.  
  5. main:-
  6. process,
  7.  
  8. positions(X, L, R) :- positions(X, L, R, 1).
  9.  
  10. positions(_, [], [], _).
  11. positions(X, [X|T], [I|R], I) :- plus(I, 1, N), positions(X, T, R, N).
  12. positions(X, [Y|T], R, I) :- X \= Y, plus(I, 1, N), positions(X, T, R, N).
  13.  
  14.  
  15. process:-
  16. positions(3, [0,1,2,3,4,3,2,3,4,5,6,3,2,1], R), write(R), nl,
  17.  
  18. :- main.
Success #stdin #stdout 0.02s 7480KB
stdin
Standard input is empty
stdout
[4,6,8,12]