Mam problem z sortowaniem podlist w Prologu. Mając np listę [ [4,1],[3,2],[1,3] ] mam ją posortować według pierwszego elementu, czyli powinno to wyglądać tak: [ [1,3],[3,2],[4,1] ]. Próbowałem już to zrobić na różne sposoby, ale nic to nie daje.
0
0
Sposobów jest wiele, pierwszy jaki mi do głowy wpada to coś w rodzaju (z dodaniem podstawy rekurencji i list_min spróbuj sam, jest prosto (sam właśnie napisałem)):
sorted(List, [Min|SortedRest]) :-
list_min(List, Min, Rest),
sorted(Rest, SortedRest).
Po polsku - posortowanie listy polega na tym, że na pierwszy element wybieramy najmniejszy element listy, a następnie sortujemy resztę.
edit: nie napisałem tego w sumie bezpośrednio - sortowanie podlist wykonuje się tak samo jak sortowanie czegokolwiek innego, poza tym że wykorzystujesz inną operację porównywania (leksykograficzne).