Я уже нашел решение.Чтобы получить такой результат, я должен применить at_end_of_stream и вырезать «! ».
bot:-
write('Hello'),
nl,
write('>'),
repeat,
readln(X),
answer(X, Answer),
write(Answer),
nl,
write('>'),
at_end_of_stream, !.
Последние две строки кода заставляют его работать так, как я ожидал.Теперь, используя комбинацию Ctrl+D
, мы можем остановить ее (закрыть поток, который аналогичен отключению бота).
@ larsmans: Приятно осознавать, что readln
- это плохо или просто не оптимально.Возможно, в следующий раз я воспользуюсь этим советом.:)