Sorting Lists and Arrays using the Standard Library
Task
Data Structures & Algorithms / Sorting / Sorting Lists and Arrays
No packages used
This recipe uses only the OCaml Standard Library.Code
Sorting a list of int values, returning a sorted copy, and using the compare function.
Note: The compare function is polymorphic and works over all types.
let l = [ 1; 90; 42; 27 ]
let l' = List.sort compare l
Sorting an array while modifying it in place.
let a = [| 1; 90; 42; 27 |]
let () = Array.sort compare a
Defining a custom compare function (here a case insensitive string comparison) and using it to sort an array.
Note: The comparison function applied to a and b needs to return 1 if a is
greater than b, 0 if they're equal, and -1 if a is less than b.
let compare_insensitive a b =
compare (String.lowercase_ascii a) (String.lowercase_ascii b)
let a = [| "ABC"; "BCD"; "abc"; "bcd" |]
let () = Array.sort compare_insensitive a