Prolog Singleton变量警告

时间:2018-04-19 20:46:43

标签: graph prolog

我是Prolog的新手,我正在尝试制定一条规则,它给出了从节点到另一个节点的给定路径,并且还给出了路径的总权重。
它运行得很完美,但我收到了这个警告: Singleton变量:[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).

1 个答案:

答案 0 :(得分:0)

Singleton变量是未使用的变量,因此可以用_替换。

  

notIn(A,[])。

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

  

notIn(_,[])。

与另一个相同。 X和P没有被使用,所以可以用_代替。