标签: exception gnu-prolog
我在Prolog中编程,有时候我想要失败,但我得到一个例外,我无法理解为什么它们之间应该有区别。如果某些事情无法执行,那意味着谓词没有成功,那么它就是一个简单的失败。我错过了什么吗?
答案 0 :(得分:2)
失败意味着你要证明的是错误的。一个例外意味着你试图证明的东西没有意义(例如,试图计算原子的平方根)由于某种原因或者你遇到一些系统限制(例如耗尽可用内存)。
但您可以通过编写以下内容轻松地将任何异常转换为失败:
catch(Goal, _, fail)