按每个子列表序言的第二个元素排序列表列表

时间:2011-03-23 15:58:05

标签: prolog

我有一个像L = [[id1,avg1],[id2,avg2],....,[idN,avgN]]这样的列表,我想通过avg对这个列表进行排序。我甚至无法开始编码! 任何想法???

1 个答案:

答案 0 :(得分:7)

您可能想要查看predsort。为此,您需要创建一个谓词,对列表项进行比较 例如:

compareAvg(X, [_,A1], [_,A2]) :- compare(X, A1, A2).

然后你可以打电话

predsort(compareAvg, [[1,2],[3,1],[5,3]],X).