好吧,我承认我应该用Amzi而不是SICStus,在使用not这个“内部谓词”时,SICStus又报错了,经查找资料,因为只用not来声明非真或者对证明结果取反容易混淆——这导致解释器会花时间来理解这个not究竟是什么意思,所以现代的Prolog使用”\”或”\+”,其中”\”用于声明,”\+”用于取反。不过当前的编译器也趋于支持not——为了支持旧的代码,比如经测试Amzi就对新旧两种方法均支持。不过看起来似乎新方法比较科学呢^_^.

P.S.如果有人不理解”\”或”\+”,可以尝试类似下面的语句:

\ 2=4.

\+ 2=4.

参考资料: http://www.cse.unsw.edu.au/~billw/prologdict.html#negation

Comments are closed.

Post Navigation