Order by pair comparisons: Difference between revisions
Content added Content deleted
No edit summary |
(added ocaml with sort) |
||
Line 647: | Line 647: | ||
13) Is indigo less than orange (y/n)? y |
13) Is indigo less than orange (y/n)? y |
||
Sorted list: blue, green, indigo, orange, red, violet, yellow</pre> |
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}}== |
=={{header|Perl}}== |