【发布时间】:2015-03-15 12:39:28
【问题描述】:
据我所知,合取的优先级高于析取。
我们有以下知识库:
a(1).
a(2,3).
a(3,2).
a(4,5,3).
b.
b(1,2).
b(3).
c.
我们的目标是:
?- a(X,Y);b(Z),c,fail,d.
所以问题来了: 我的老师说目标分为 4 个子目标,通过连词连接:
(a(X,Y);b(Z)),
c,
fail,
d.
并且执行此查询时我不应该得到任何结果。 但是连词的优先级更高,对吧? 目标不应该分成两个子目标(不是四个),通过析取连接:
a(X,Y);
b(Z),c,fail,d.
所以现在我想知道谁是对的,谁是错的。 谁能解释一下?
**当我执行查询时,我实际上得到了结果。
【问题讨论】:
-
文档明确指出
,的优先级高于;。你的解释是正确的,你的测试证实了这一点。 -
非常感谢您的确认!
标签: prolog