Pour trier des listes, on utilisera le prédicat merge_sort/3. Ce prédicat est générique et a besoin d'une relation d'ordre pour fonctionner. Il est équivalent au prédicat predsort/3 de SWI-Prolog.
Exemple :
cmp(X:_,Y:_):-X<Y. ?-merge_sort(cmp,[1:a,3:b,2:d],S). L=[1:a,2:d,3:b]