如何在Windows上使用Prolog swipl REPL发送EOF以关闭伪用户文件?

4

我正在Windows上使用swipl.exe Prolog REPL,并尝试使用用[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
  • .
  • ENTER(这显示一个错误,并将我带回伪文件中)
  • CTRL+C(此操作仅会中止两个swipl进程中的一个,使控制台处于破损状态,一些按键输入到swipl,一些输入到cmd (!) )

我知道在空行上按CTRL+Z然后按ENTER通常可以发送EOF,就像如果我在more.com中键入AENTERBENTERCTRL+ZENTER,我的终端上的所有内容都正常工作。


如果我按同样的按键步骤运行swipl-win.exe GUI,当我立即按下CTRL+Z时,它会关闭伪文件并将我返回到顶级查询:


?- [user].
|: hello :- format('Hello world~n').
|: 
% user://1 compiled 0.00 sec, 1 clauses
true.

?- hello.
Hello world
true.

?- 

我该按什么键才能让 swipl.exe 中的 [user]. 正常工作?
1个回答

4

正如您所注意到的,当您键入[user]时,您正在查看一个由术语组成的伪源文件。因此,只需键入术语end_of_file即可。例如:

?- [user].
|: a.
|: b.
|: end_of_file.

% user://1 compiled 0.00 sec, 2 clauses
true.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接