>>630 ocaml https://ideone.com/zdWLHX let rev s = String.init (String.length s) (fun i -> s.[String.length s - 1 - i]) let (<<) f g x = f (g x) let f = List.map (fun (r, s) -> s) << List.sort compare << List.map (fun s -> (rev s, s)) let () = List.iter print_endline @@ f ["aaaaCB"; "bbbBA"; "cccccDB"];