Compare strings with numbers and diacritics "naturally"
Compare two as 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" }]Naturally sort values from lowest to highest
sort [ "b10", "B2", "A", "a" ]
--> [ "A", "a", "B2", "b10" ]Naturally sort values by a derived property.
alice = { name = "Alice" }
bob = { name = "Bob" }
bill = { name = "bill" }
sortBy .name [bob, bill, alice]
--> [alice, bill, bob]
Compare two strings naturally.