Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Recursion

今日は,「Learn You a Haskell for Great Good!」の
5. Recursion
を斜め読みしてみました。

Haskellを勉強しようと思ったとき,Googleで調べてみると,Quicksortの例があちこちで見られましたが,そのQuicksortが出てきました(^^)。

quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
    let smallerSorted = quicksort [a | a <- xs, a <= x]
        biggerSorted = quicksort [a | a <- xs, a > x]
    in smallerSorted ++ [x] ++ biggerSorted

すごくシンプルで分かりやすいと思います。