%% quicksort(List)%% Sort a list of items-module(quicksort).-export([qsort/1]).qsort([])->[];qsort([Pivot|Rest])->qsort([X||X<-Rest,X<Pivot])++[Pivot]++qsort([Y||Y<-Rest,Y>=Pivot]).
qsort 함수는 더 이상 정렬할 필요가 없을 때까지 자신을 재귀적으로 호출한다.
주의 : 위의 코드는 책 Programming Erlang(조 암스트롱)에 실려있는 코드이긴 하지만 실려있는 이유는 우아하기 때문이지 효율적이어서가 아니다. Erlang에서는 아래의 규칙을 벗어나게 프로그래밍 하는 것을 권장하지 않는다.
요소는 항상 리스트의 헤드(앞)에 추가한다.
순서가 문제가 되는 경우 lists:reverse/1을 호출한다. 이것은 매우 최적화되어있다.