prolog - Prolog 中的逻辑或

标签 prolog

我是 Prolog 学习的新手,并为该上下文尝试了一个逻辑 OR 运算符:

%a.      
b.

foo:- a ; b.

我已经评论了 a. 来尝试逻辑 OR-Operator 但它不起作用。如果您使用 ?-foo. 进行查询,则会出现异常。 Prolog 只检查第一项而不检查第二项。谁能帮帮我?

最好的问候。

最佳答案

您得到异常,因为 a/0 未定义。为了检查 or-operator,您可以明确地将 a 定义为 false。

a:-false.
b.

foo:- a ; b.

现在 ?- foo. 给出了答案 true.

Prolog 做出了“封闭世界”的假设。它只能评估定义的谓词的真假。这意味着您至少需要一个在其左侧具有谓词的子句(或一个事实,因为这将被解释为没有条件的子句,因此没有右侧)。

关于prolog - Prolog 中的逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43768604/

相关文章:

prolog - 如何检查名称是否在谓词中由其相似术语识别的列表中?

list - 将整数列表拆分为正整数列表和负整数列表

prolog - XSB Prolog - 如何查阅 .p 文件?

list - 带列表的 Prolog

compiler-errors - 反转Prolog中的列表时出现运行时错误

prolog - ISO Prolog 谓词的复杂性

prolog - 在 Prolog 中定义(数学)函数

Prolog -- 对称谓词

prolog - 剪切(!)与返回

在 Prolog 中添加列表