私はhaskellを学んでいて、私が見る関数の定義は次のとおりです。
quickSort (x : xs) = (quickSort less) ++ (x : equal) ++ (quickSort more)
where less = filter (< x) xs
equal = filter (== x) xs
more = filter (> x) xs
リストを3回ではなく、1回トラバースするだけで書き込むことはできますか?