我是prolog的新手,我似乎无法理解结构和谓词之间的区别.真的有什么区别吗?
虽然挖掘我发现有些人认为 f(X): - (X) 是一个谓词,有些人认为是 嫉妒(X,Y): - 喜欢(X,Z),喜欢(Y,Z) 是一个结构(或复杂的术语).他们对我看起来几乎一样.
有人在意解释吗?
据我所知,连接比分离具有更高的优先级。
我们有以下知识库:
a(1).
a(2,3).
a(3,2).
a(4,5,3).
b.
b(1,2).
b(3).
c.
Run Code Online (Sandbox Code Playgroud)
我们的目标是:
?- a(X,Y);b(Z),c,fail,d.
Run Code Online (Sandbox Code Playgroud)
所以问题来了:我的老师说目标被分解为 4 个子目标,通过连词连接:
(a(X,Y);b(Z)),
c,
fail,
d.
Run Code Online (Sandbox Code Playgroud)
并且在执行此查询时我不应该得到任何结果。但是连词有更大的优先级,对吧?目标不应该被分解为两个子目标(而不是四个),通过分离连接:
a(X,Y);
b(Z),c,fail,d.
Run Code Online (Sandbox Code Playgroud)
所以现在我想知道谁对谁错。有人可以解释一下吗?
**当我执行查询时,我实际上得到了结果。
prolog ×2