无权修改静态过程(\ =)/ 2 prolog错误

时间:2017-02-11 13:36:46

标签: compiler-errors prolog

我试图写一条规则,告诉他们什么时候可以" 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.

1 个答案:

答案 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.

删除了错误。