我正在尝试理解该语句,但在对象术语的末尾我找不到关于-1/4
的任何内容。我试过搜索,但我甚至不确定要搜索什么。
exists(A,object(B,A,apple,countable,na,eq,1)-1/4).
答案 0 :(得分:4)
exists / 2的第二个参数是对符号中的两个术语。一个词是object(_A,A,apple,countable,na,eq,1)
,另一个词是1/4
。如果您尝试以下查询,则可以看到此内容:
?- exists(A,X-Y).
X = object(_A,A,apple,countable,na,eq,1),
Y = 1/4
由于第二项是算术表达式,您可以使用is / 2评估它:
?- exists(A,X-Y), Z is Y.
X = object(_A,A,apple,countable,na,eq,1),
Y = 1/4,
Z = 0.25
仿函数( - )/ 2通常用于表示对。正如@lurker在评论中指出的那样,规范形式是-(X,Y)
,但由于( - )/ 2被定义为Prolog中的中缀运算符,因此两种符号都是等价的。要看到这一点,请考虑以下查询:
?- X-Y = -(X,Y).
true