mar*_*ser 2 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.
Run Code Online (Sandbox Code Playgroud)
注意:@false提供了正确的提示。这只是将答案作为答案。
OP的原始代码收到以下错误:
brother(A,B):-
parent(X,A),
parent(X,B),
male(A).
A \= B.
Run Code Online (Sandbox Code Playgroud)
和错误:
ERROR: xyz.pl:8:
No permission to modify static procedure `(\=)/2'
Run Code Online (Sandbox Code Playgroud)
通过更改缩进,如@false所示
brother(A,B):-
parent(X,A),
parent(X,B),
male(A).
A \= B.
Run Code Online (Sandbox Code Playgroud)
对于OP来说,显然不应该有一个full stopwith male(A).。
将代码更改为
brother(A,B):-
parent(X,A),
parent(X,B),
male(A),
A \= B.
Run Code Online (Sandbox Code Playgroud)
消除了错误。
| 归档时间: |
|
| 查看次数: |
4644 次 |
| 最近记录: |