def qsort(L):
"""
Porting the Erlang quicksort implementation from http://en.wikipedia.org/wiki/Erlang_(programming_language)
"""
if not L: return L
Pivot, Tail = L[0], L[1:]
return qsort([X for X in Tail if X < Pivot]) + [Pivot] + qsort([X for X in Tail if X >= Pivot])