我正在实施一种算法,将两个城市之间的所有路径放在一个列表中。此列表保存了路径和获取该路径的总价格。该列表如下所示:
[(12, [A,B,C,D]), (15, [B,C,D,E]), ... ]
在我拥有此列表中的所有路径之后,我想知道哪一个是最便宜的。我知道我可以自己做,但我想知道是否有任何方法可以使用findall/3
来完成这项任务。
答案 0 :(得分:0)
我假设你有一个断言的数据谓词类似于:
insert_data :-
assert(cities(CITYA,3)), assert(cities(CITYB,2)).
你可能想要做的是:
my_query(City, L) :-findall(Name, (cities(City,Weight),
setup(City1,Weight1),
setup(City2,Weight2),
Weight2-Weight1),L),!.