我试图理解该语句,但在对象术语末尾找不到任何有关 -1/4
的信息。我尝试过搜索,但我什至不确定要搜索什么。
exists(A,object(B,A,apple,countable,na,eq,1)-1/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
关于prolog - 术语末尾的连字符是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45090126/