我是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).
答案 0 :(得分:0)
Singleton变量是未使用的变量,因此可以用_替换。
notIn(A,[])。
这里变量A根本没有被使用,所以它应该是。
notIn(_,[])。
与另一个相同。 X和P没有被使用,所以可以用_代替。