私は、都市のリストを含む問題に取り組んでおり、Prolog で指定された都市に最も近いものを見つけています。たとえば、このデータセットからシアトルに最も近い都市を見つけたい場合
city(5,3, seattle).
city(22,17,nashville).
city(4,7, portland).
city(21,18, memphis).
city(1,11, sacramento).
そして、私は距離を定義する述語/ 2を持っています
calc(C1,C2,D) :-
city(V1,H1,C1),
city(V2,H2,C2),
D is ((V1-V2)^2+(H1-H2)^2).
findall/3 を使用して距離を計算し、最も近い都市を見つけるにはどうすればよいですか?