Prolog单例变量警告

Prolog单例变量警告,prolog,graph-theory,Prolog,Graph Theory,我不熟悉Prolog,我试图制定一个规则,给我一个从一个节点到另一个节点的给定路径,并给我路径的总权重 它运行得很好,但我得到了以下警告:单例变量:[A] 和单例变量:[X,P]有人能帮我解决这个警告吗 notIn(A,[]). notIn(A,[H|T]):- dif(A,H), notIn(A,T). start(X,Y,[X|Cs], P) :- path(X,Y,[X],Cs, 0, P). path(X,X,_,[], P, P). path(X,Y

我不熟悉Prolog,我试图制定一个规则,给我一个从一个节点到另一个节点的给定路径,并给我路径的总权重
它运行得很好,但我得到了以下警告:单例变量:[A]单例变量:[X,P]有人能帮我解决这个警告吗

notIn(A,[]).
 notIn(A,[H|T]):-
    dif(A,H),
    notIn(A,T).

 start(X,Y,[X|Cs], P) :-
    path(X,Y,[X],Cs, 0, P).

 path(X,X,_,[], P, P).
 path(X,Y,Visited,[Z|Cs], S, P) :-
     connection(X,Z,W),
     notIn(Z,Visited),
     S1 is S+W,
     path(Z,Y,[Z|Visited],Cs, S1, P). <-(2)

 ? path(ori, dest, X, 0, P).

 connection(ori,a,2).
 connection(a,b,5).
 connection(b,a,4).
 connection(b,dest,1).
notIn(A,[])。
notIn(A[H|T]):-
dif(A,H),
诺丁(A,T)。
开始(X,Y,[X | Cs],P):-
路径(X,Y,[X],Cs,0,P)。
路径(X,X,u,[],P,P)。
路径(X,Y,到访,[Z|Cs],S,P):-
连接(X、Z、W),
诺丁(Z,访问),
S1是S+W,

路径(Z,Y,[Z |访问],Cs,S1,P) 单例变量是那些没有被使用的变量,因此可以用x替换

notIn(A,[])

这里根本没有使用变量A,所以应该使用它

notIn(uz,[])


另一个也一样。X和P没有被使用,所以可以用u代替。

我的代码中有一些错误,不是完美的,只是想了解警告以及如何解决它。我觉得我正在使用所有这些考虑
不在(A,[])。
。变量
A
只在头部出现一次(没有身体)。因此,这与
notIn(,[])的含义相同。
我很高兴您认真对待单例变量警告,因为它们通常表示逻辑错误!这是一个无害的例子,但无论如何,你应该用
\uuu
来代替它。你是个天才!感谢你的谦逊@Daniellyon我看不出哪里会标记为单身。这是所有的代码吗?这是您看到错误的代码版本吗?这条线的意义是什么