2
我有单引号原子的问题。 虽然p =='p'返回true,为什么p = \ ='p'不返回false?它给了我一个错误,说'P'不是一个函数。为什么p = 'p'在SWI-prolog中返回错误?
我有单引号原子的问题。 虽然p =='p'返回true,为什么p = \ ='p'不返回false?它给了我一个错误,说'P'不是一个函数。为什么p = 'p'在SWI-prolog中返回错误?
因为==
checks term equality,而=\=
checks arithmetical inequality。作为为p
不是数字,Prolog的将其视为一个算术表达式,试图找出其算术值:
1 ?- p == 'p'.
true.
2 ?- p =/= 'p'.
ERROR: Syntax error: Operator expected
ERROR: p
ERROR: ** here **
ERROR: =/= 'p' .
2 ?- p =\= 'p'.
ERROR: =\=/2: Arithmetic: `p/0' is not a function
3 ?-
@lurker谢谢!我修复了它。 – 921Kiyo