?- collect := []; readInput() :- write("input> "), addInput(read()) ; addInput(Input) :- Input = nl(), ^collect; addInput(Input) :- collect := [sTrim(Input) | ^collect], readInput(); ?- readInput();