Я хочу рассчитать расстояние от двух городов, у меня есть cityState, список списков
[NameCity,[X,Y],Neighbours],[],..]
Я пытаюсь написать код в Прологе, чтобы вычислить расстояние между двумя городами, но когда я попытался выполнить предикат «расстояние», получим
ERROR: Syntax error: Operator expected
ERROR: distance
ERROR: ** here **
ERROR: (a,b,Distance) .
Моя реализация:
cityState([[a,[2,3],[b,d]],[b,[5,1],[a,c,d]], [c, [3, 2], [b, d]], [d, [6, 3], [a, b, c]]]).
city(Name,Position,Neighbors):-
cityState(L),
member([Name,Position,Neighbors],L),
!.
position(Name,Position):-
city(Name,Position,_Neighbors).
distance(City1,City2,Distance):-
position(City1,[X1,Y1]),
position(City2,[X2,Y2]),
X_Dist is (X1-X2) ** 2,
Y_Dist is (Y1-Y2) ** 2,
Distance is sqrt(X_Dist + Y_Dist).
Я ожидаю, что вывод Distance ... как я могу это сделать?