findall使えばWikipediaのやつよりはHaskellっぽくなるかも(´・ω・`)こんな感じ

quicksort([], []).
quicksort([H|T], Sorted) :-
findall(E, (member(E, T), E  @> H), GTs),
findall(E, (member(E, T), E @=< H), LEs),
quicksort(GTs, GTs2),
quicksort(LEs, LEs2),
append(LEs2, [H|GTs2], Sorted).