Haskellでクイックソートを信じられないほど短く書けると聞いたのでやってみました。

ソースコード

以下がそのコードです。

sort (x:xs) = sort [ b | b <- xs, b < x ] ++ [x] ++ sort [ b | b <- xs, x < b ]
sort _ = []

リスト内包表記とパターンマッチングを組み合わせてとっても綺麗にかけました。 また、内包表記の中で比較演算を使用しているので、自動的にリスト要素の型がOrdとして解決されています。