/* GPL(C) Mohsin Ahmed, http://www.cs.albany.edu/~mosh * SYNOPSIS: pretty print a prolog list. */ listcopy(In,Out):- see(In), tell(Out), repeat, read(X), process(X), X=end_of_file, seen, told. process(end_of_file) :- !. process(X):- pph(0,X), write('.'). ppt(_,[]). ppt(N,[H|T]):- write(','),nl,pph(N,H), ppt(N,T). pph(N,[H|T]):- M is N+5, spaces(N), write('['),nl, pph(M,H), ppt(M,T),nl, spaces(M), write(']'). pph(N,H):- atomic(H), spaces(N), write(H). spaces(0). spaces(N):- N>0, write(' '), M is N-1, spaces(M).