predicates
pathdistance(symbol,symbol,integer).
solve(symbol,symbol,integer).
clauses
pathdistance(a,b,10).
pathdistance(b,c,20).
pathdistance(c,d,5).
pathdistance(d,e,15).
pathdistance(a,d,5).
pathdistance(c,e,10).
solve(X,Z,C):-
pathdistance(X,Z,C).
solve(X,Z,C):-
pathdistance(X,Y,Cost),
solve(Y,Z,C),
Cost is Cost+C.
goal
solve(a,d,Cost).
我想要的成本答案是 a 和 d 之间所有 C(总距离)的总和。上面的代码不起作用,它不允许我采用新变量,请有人在上面进行更改代码,这样我就可以得到成本的总距离。请记住,我是 prolog 的新手,谢谢!