Haskell sort function
functional-programming, haskell, sorting
Solution
No, but it does sorts strings as it's supposed to do: Lexicographically
The relation `"200" < "30"` holds for the same reason as `"Hello" < "World"` does.
So if you want Haskell to sort by the numeric value, you'll have to sort actual numbers.
import Data.List
import Data.Function
sortNumeric = sortBy (compare `on` (read :: String -> Int))
sortNumeric ["1", "200", "234", "30"]
But: Why does your list full of "numbers" contain strings? Consider using a proper `[Int]` instead.
Problem
Why does Haskell's `sort` of `Data.List` ignore the third digit? ``` Prelude>sort ["1","200","234","30"] ["1","200","234","30"] ``` EDIT: Sorry, I did not realize those were strings. My fault.