我试图写一条规则,告诉他们什么时候可以" A"成为" B"的兄弟但我得到一个错误,一个警告第一个错误说:no permission to modify static procedure (\= )/2
警告说:Singleton variables [A,B]
。我理解单例变量意味着变量只使用一次,但是我无法找到修复代码的方法但是我不能理解第一个错误我是Prolog的初学者所以它可能恰好是一个傻瓜我无法找到的错误。
brother(A,B):-
parent(X,A),
parent(X,B),
male(A).
A \= B.
答案 0 :(得分:4)
注意:@false提供了正确的提示。这只是回答答案。
OP收到错误的原始代码:
brother(A,B):-
parent(X,A),
parent(X,B),
male(A).
A \= B.
和错误:
ERROR: xyz.pl:8:
No permission to modify static procedure `(\=)/2'
通过更改@false
所指示的缩进brother(A,B):-
parent(X,A),
parent(X,B),
male(A).
A \= B.
对于OP来说很明显,full stop
male(A).
不应该存在{。}}。
将代码更改为
brother(A,B):-
parent(X,A),
parent(X,B),
male(A),
A \= B.
删除了错误。