Order by pair comparisons: Difference between revisions

added ocaml with sort
No edit summary
(added ocaml with sort)
Line 647:
13) Is indigo less than orange (y/n)? y
Sorted list: blue, green, indigo, orange, red, violet, yellow</pre>
 
=={{header|OCaml}}==
Standard sort with custom comparator
 
List:
<lang ocaml>let () =
let count = ref 0 in
let mycmp s1 s2 = (
incr count;
Printf.printf "(%d) Is %s <, ==, or > %s? Answer -1, 0, or 1: " (!count) s1 s2;
read_int ()
) in
let items = ["violet"; "red"; "green"; "indigo"; "blue"; "yellow"; "orange"] in
let sorted = List.sort mycmp items in
List.iter (Printf.printf "%s ") sorted;
print_newline ()</lang>
{{out}}
<pre>
(1) Is violet <, ==, or > red? Answer -1, 0, or 1: 1
(2) Is red <, ==, or > green? Answer -1, 0, or 1: -1
(3) Is violet <, ==, or > green? Answer -1, 0, or 1: 1
(4) Is indigo <, ==, or > blue? Answer -1, 0, or 1: 1
(5) Is yellow <, ==, or > orange? Answer -1, 0, or 1: 1
(6) Is blue <, ==, or > orange? Answer -1, 0, or 1: 1
(7) Is blue <, ==, or > yellow? Answer -1, 0, or 1: 1
(8) Is violet <, ==, or > indigo? Answer -1, 0, or 1: 1
(9) Is green <, ==, or > indigo? Answer -1, 0, or 1: -1
(10) Is green <, ==, or > blue? Answer -1, 0, or 1: -1
(11) Is green <, ==, or > yellow? Answer -1, 0, or 1: 1
(12) Is red <, ==, or > yellow? Answer -1, 0, or 1: -1
(13) Is red <, ==, or > orange? Answer -1, 0, or 1: -1
red orange yellow green blue indigo violet
</pre>
 
Array:
<lang ocaml>let () =
let count = ref 0 in
let mycmp s1 s2 = (
incr count;
Printf.printf "(%d) Is %s <, ==, or > %s? Answer -1, 0, or 1: " (!count) s1 s2;
read_int ()
) in
let items = [|"violet"; "red"; "green"; "indigo"; "blue"; "yellow"; "orange"|] in
Array.sort mycmp items;
Array.iter (Printf.printf "%s ") items;
print_newline ()</lang>
{{out}}
<pre>
(1) Is blue <, ==, or > yellow? Answer -1, 0, or 1: 1
(2) Is blue <, ==, or > orange? Answer -1, 0, or 1: 1
(3) Is blue <, ==, or > red? Answer -1, 0, or 1: 1
(4) Is blue <, ==, or > green? Answer -1, 0, or 1: 1
(5) Is blue <, ==, or > indigo? Answer -1, 0, or 1: -1
(6) Is indigo <, ==, or > violet? Answer -1, 0, or 1: -1
(7) Is blue <, ==, or > green? Answer -1, 0, or 1: 1
(8) Is blue <, ==, or > indigo? Answer -1, 0, or 1: -1
(9) Is indigo <, ==, or > orange? Answer -1, 0, or 1: 1
(10) Is blue <, ==, or > green? Answer -1, 0, or 1: 1
(11) Is blue <, ==, or > orange? Answer -1, 0, or 1: 1
(12) Is red <, ==, or > yellow? Answer -1, 0, or 1: -1
(13) Is blue <, ==, or > yellow? Answer -1, 0, or 1: 1
(14) Is yellow <, ==, or > green? Answer -1, 0, or 1: -1
(15) Is green <, ==, or > orange? Answer -1, 0, or 1: 1
(16) Is green <, ==, or > red? Answer -1, 0, or 1: 1
(17) Is yellow <, ==, or > red? Answer -1, 0, or 1: 1
(18) Is yellow <, ==, or > orange? Answer -1, 0, or 1: 1
(19) Is orange <, ==, or > red? Answer -1, 0, or 1: 1
red orange yellow green blue indigo violet
</pre>
 
=={{header|Perl}}==
Anonymous user