Использование apropos
apropos( sort ).
Это показывает, что есть некоторые встроенные предикаты, которые помогут вам с вашей проблемой - sort
с удалением дубликатов и msort
без удаления дубликатов.
?- sort( [(b,y,3),(p,z,1),(p,y,3),(b,y,2),(p,z,2),(p,x,3)], X).
X = [ (b, y, 2), (b, y, 3), (p, x, 3), (p, y, 3), (p, z, 1), (p, z, 2)].
?- msort( [(b,y,3),(p,z,1),(p,y,3),(b,y,2),(p,z,2),(p,x,3)], X).
X = [ (b, y, 2), (b, y, 3), (p, x, 3), (p, y, 3), (p, z, 1), (p, z, 2)].