0
%travelto(Traveller, Travelling_to, Distance, Cost)
travelto(nella,ryan,120,35).
travelto(jamie,lyla,50,10).
travelto(tyran,john,55,25).
travelto(maria,karolina,350,55).
travelto(leo,anna,250,20).
travelto(lyla,josh,300,45).
travelto(martin,john,250,55).
travelto(leo,najma,100,20).
travelto(diana,kyle,230,15).
travelto(michael,lucy,90,15).
travelto(sam,kate,300,40).
travelto(jason,cindy,170,26).
travelto(julia,nayma,110,10).
sortList(Traveller):-
findall(Traveller-Cost,travelto(Traveller,_,_,Cost),List),
keysort(List,Answer),
print([Answer]),
fail.
上記の情報は、私のデータベースから入手したものです。私は、ユーザーが原子(旅行者の名前)のリストを入力し、コストの名前の降順リストを返すことを可能にするルールを作成したいと思います。私はswi-prologからいくつかのドキュメントを読んで、stackoverflowに検索しようとしました。私が作成したルールは上にあり、間違っていると思います。私はたくさんの読書を試みましたが、私は何をすべきか理解できませんでした。誰かが今直面している問題で私を助けてくれる?降順でアトムをソートして印刷する方法
以下は、入力したいクエリの例と、取得したいリターンの例です。
?-sortList([martin,jamie,diana,tyran,nella]). %query I want to type in
[martin,nella,tyran,diana,jamie] %return I am expecting