understand the running trace of quicksort in prolog
问题 I have the following prolog code for quicksort: gt(X,Y):- X @> Y. conc([], List, List). conc([Head|Tail], List1, [Head|List2]):- conc(Tail, List1, List2). quicksort([], []). quicksort([X|Tail], Sorted):- split(X,Tail,Small,Big), quicksort(Small,SortedSmall), quicksort(Big, SortedBig), conc(SortedSmall, [X|SortedBig], Sorted). split(X,[],[],[]). split(X,[Y|Tail],[Y|Small],Big):- gt(X,Y), !, split(X,Tail,Small, Big). split(X,[Y|Tail],Small,[Y|Big]):- split(X,Tail,Small,Big). The array for