今日は,「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
すごくシンプルで分かりやすいと思います。