2 ms·
Correct. Sadly explaining monads and mutable data in Haskell would make this guide a lot longer. The example I gave is the traditional "look has elegant Haskell
by egonschiele 13y ago
Correct. Sadly explaining monads and mutable data in Haskell would make this guide a lot longer. The example I gave is the traditional "look has elegant Haskell is!" example, not the "look how fast Haskell is!" example :)
- DanWaterworth 13y agoYou could use mergesort instead: merge :: Ord x => [x] -> [x] -> [x] merge [] y = y merge x [] = x merge (x:xs) (y:ys) = if x < y then x:(merge xs (y:ys)) else y:(merge (x:xs) ys) odds :: [x] -> [x] odds [] = [] odds (x:xs) = x:(evens xs) evens :: [x] -> [x] evens = odds . drop 1 mergesort :: Ord x => [x] -> [x] mergesort [] = [] mergesort [x] = [x] mergesort x = merge (mergesort (odds x)) (mergesort (evens x))