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.

Original source