我是 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/