如何在MacOS上查询期间强制停止SWI-prolog

时间:2018-10-05 18:02:05

标签: swi-prolog

有没有办法在查询期间强制停止SWI-Prolog?例如,假设我有一个进入无限循环的谓词(bad_foo(X))。当我在SWI-Prolog中查询该谓词时,查询会运行一段时间(有时是几分钟),然后以ERROR: Out of local stack失败:

?- bad_foo(1).
(% and after a long wait...)
ERROR: Out of local stack

我的问题:如何在查询用尽堆栈之前跳过等待并停止查询?简而言之,我正在从Linux寻找等效的 Ctrl + C

我正在MacOS上使用SWI-Prolog版本7.6.4。

1 个答案:

答案 0 :(得分:0)

尽管 Ctrl + C 不起作用,但是按 Cmd + C 会暂停查询并提示帮助消息,然后可以通过键入 a 终止查询来终止查询:

?- bad_foo(1).
(% press Cmd+C and you'll be prompted:)
Action (h for help) ?
(% press a to abort)
abort
?-