算术术语不会失败,但其否定会

时间:2018-07-28 15:50:05

标签: prolog

给定查询?- p == 'p'.,序言输出true。 但是给定查询p =\= 'p'.,序言输出

ERROR: Arithmetic: `p' is not a function
ERROR: In:

那是为什么? ===/=之间有什么区别,所以对p的评估有所不同?

1 个答案:

答案 0 :(得分:3)

==的求反不是=\=,而是\==

来自comparision operators

  如果术语T1 == T2T1相同,则

T2成功

     如果术语T1 \== T2T1不相同,

T2成功

     如果表达式E1 =:= E2E1的值相等,则

E2成功

     如果表达式E1 =\= E2E1的值不相等,则

E2成功

=\=期望p'p'是表达式并尝试求值,但不是。