Prolog,带异或的错误

Prolog,带异或的错误,prolog,Prolog,我不熟悉prolog,我想制作一个使用介词的简单专家系统,我正在努力使用异或。以下是我目前的计划: /*facts*/ a. b. c. /*rules*/ e :- c. d :- a, \+e. f :- xor(b, d). /*here is where it gives me an error*/ /*query*/ ?- f. /*error*/ ERROR: f/0: Undefined procedure: (xor)/2 Exception: (8) b xor d

我不熟悉prolog,我想制作一个使用介词的简单专家系统,我正在努力使用异或。以下是我目前的计划:

/*facts*/
a.
b.
c.

/*rules*/
e :- c.
d :- a, \+e.
f :- xor(b, d). /*here is where it gives me an error*/

/*query*/
?- f.

/*error*/
ERROR: f/0: Undefined procedure: (xor)/2
  Exception: (8) b xor d ? no debug
?-

我不认为这是解决你问题的更好方法,但无论如何

?- X is 1 xor 0.
X = 1.

?- X is 1 xor 1.
X = 0.
所以

现在呢

?- xor(true,false).
true.

?- xor(true,true).
false.

?- xor(true,1 is 7-6).
false.

我不认为这是解决你问题的更好方法,但无论如何

?- X is 1 xor 0.
X = 1.

?- X is 1 xor 1.
X = 0.
所以

现在呢

?- xor(true,false).
true.

?- xor(true,true).
false.

?- xor(true,1 is 7-6).
false.

我建议你添加你得到的错误,这样人们可以帮助你只是在帖子上添加了错误我建议你添加你得到的错误,这样人们可以帮助你只是在帖子上添加了错误谢谢我现在知道了,@coder用一种基本的方式解释道,我不是在理解调用和退出,也许我会完全理解你的
xor
通常不是运算符。非常感谢我现在明白了,@coder用一种基本的方式解释它,我不是在理解调用和退出,也许我会完全理解你的
xor
通常不是运算符。