Compare strings with numbers and diacritics "naturally"
compare : String -> String -> Basics.Order
Compare two strings naturally.
List.sortWith NaturalOrdering.compare ["a10", "a2"]
--> ["a2", "a10"]
compareOn : (a -> String) -> a -> a -> Basics.Order
Compare two a
s naturally, based on some function, a -> String
. Use
this where you would ordinarily use sortBy
.
List.sortWith (compareOn .name) [{ name = "a10" }, { name = "a2" }]
--> [{ name = "a2" }, { name = "a10" }]
sort : List String -> List String
Naturally sort values from lowest to highest
sort [ "b10", "B2", "A", "a" ]
--> [ "A", "a", "B2", "b10" ]
sortBy : (a -> String) -> List a -> List a
Naturally sort values by a derived property.
alice = { name = "Alice" }
bob = { name = "Bob" }
bill = { name = "bill" }
sortBy .name [bob, bill, alice]
--> [alice, bill, bob]