有没有办法在查询期间强制停止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。
答案 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
?-