我想在序言中按字母顺序排列一个列表,这样我就可以去掉该列表的头部或尾部来处理——基本上可以更容易地按字母顺序(或反字母顺序)处理事情。我每次都以不同的顺序收到单词(不是按字母顺序排列的,也不是按相同的顺序);例如,
'ra1' 'ra2' 'rb2' 'ra3' 'rb1'
我无法对列表进行硬编码;它可能是 9 或 16 个项目,等等,所以我想将它们排序成一个按字母顺序排列的 'ra1'、'ra2'、'ra3'、'rb1'、'rb2' 列表......
我应该能够使用“比较”。例如,
compare(Res, 'ra2', 'ra1').
Res = (>).
这恰好是 2 件物品,现在我需要一些未指定数量的物品。想法?
places(['zzz', 'aaa']).
alph(Outlist, Inlist) :-
member(A, Inlist),
member(B, Inlist),
compare(<, A, B),
A \= B,
% and they go in that order in a new list.
append([A], [B], Outlist).