Я использую swipl.exe
Prolog REPL в Windows и пытаюсь использовать пользователя псевдофайл, открытый с помощью [user].
, но я не могу найти сочетание клавиш, чтобы оставить псевдофайл:
c:\code>swipl.exe
Welcome to SWI-Prolog (threaded, 64 bits, version 8.0.3)
1 ?- [user].
|: hello :- format('Hello world~n').
|: ^Z
.
ERROR: user://1:9:3: Syntax error: illegal_character
|:
Action (h for help) ? ^C
c:\code>
Начиная с ^Z
я набрал ключи
- CTRL+Z
- ENTER (я ожидал, что здесь должен был быть отправлен EOF)
- ВВОД
- .
- ENTER (это показывает ошибку и возвращает меня в псевдофайл)
- CTRL+C (это убивает только один из двух процессов swipl, оставляя консоль в сломанном состоянии, при этом некоторые нажатия клавиш отправляются на swipl, а некоторые — на cmd(!))
Я знаю, что в пустой строке нажатие CTRL+Z, а затем ENTER обычно работает для отправки EOF, например, если в more.com
я набираю A ENTER B ENTER CTRL+Z ENTER< /kbd> на моем терминале все работает.
Если я запускаю графический интерфейс swipl-win.exe
, следуя тем же ключевым шагам, сразу же, когда я нажимаю CTRL+Z, он закрывает псевдофайл и возвращает меня к запросу верхнего уровня:
?- [user].
|: hello :- format('Hello world~n').
|:
% user://1 compiled 0.00 sec, 1 clauses
true.
?- hello.
Hello world
true.
?-
Что мне нажать, чтобы [user].
работало в swipl.exe
?