fork(8) download
  1. split(L,P,R):-split(L,P,[],R).
  2. split([],_,[],[]).
  3. split([],_,S,[S]) :- S \= [].
  4. split([P|T],P,[],R) :- split(T,P,[],R).
  5. split([P|T],P,L,[L|R]) :- L \= [], split(T,P,[],R).
  6. split([H|T],P,S,R) :- H \= P, append(S, [H], S2), split(T,P,S2,R).
  7.  
  8. :- split(['_', '_', '#', '_', '#', '_'], '#', X), write(X), nl,
  9. split(['_', '_', '#', '_', '#', '#', '_'], '#', Y), write(Y), nl,
  10. split(['_', '_', '#', '_', '#', '#', '_', '#', '#'], '#', Z), write(Z), nl.
Success #stdin #stdout #stderr 0.03s 6204KB
stdin
Standard input is empty
stdout
[[_, _], [_], [_]]
[[_, _], [_], [_]]
[[_, _], [_], [_]]
stderr