1
node(1,22,44).
node(2,43,53).
node(3,23,12).

distance(Id1,Id2,D) :-
    node(Id1,X1,Y1),
    node(Id2,X2,Y2),
    D is sqrt((X2-X1)^2 + (Y2-Y1)^2).

distancePath([X,Y],D) :-
    distance(X,Y,D).
distancePath([H,X|T],Distance) :-
    distancePath([X|T],Rest),
    distance(H,X,D),
    Aux is Rest + D,
    Distance is Distance + Aux.

実行すると「(is)/2 の引数 2 のインスタンス化エラー」が表示されるため、distancePath に何らかの問題がありdistancePath([1,2,3],Distance).ます。

4

1 に答える 1