Order by pair comparisons: Difference between revisions
→{{header|F_Sharp|F#}}
(Added Quackery.) |
|||
Line 306:
=={{header|F_Sharp|F#}}==
<lang fsharp>
// Order by pair comparisons. Nigel Galloway: April 23rd., 2021
type colours= Violet |Red |Green |Indigo |Blue |Yellow |Orange
let clrs=printfn "Enter colours seperated by spaces"; System.Console.ReadLine()
let fN g=match g with "Violet"->Some(Violet) |"Red"->Some(Red) |"Green"->Some(Green) |"Indigo"->Some(Indigo) |"Blue"->Some(Blue) |"Yellow"->Some(Yellow) |"Orange"->Some(Orange) |_->None
let mutable z=0 in printfn "%s sorted to %A using %d comparisons" clrs (clrs.Split ' '|>Array.choose fN|>Array.sortWith(fun n g->z<-z+1; compare n g)) z
</lang>
{{out}}
Typical outputs:
<pre>
Enter colours seperated by spaces
[Red;Orange;Yellow;Green;Blue;Indigo;Violet] sorted to [Violet; Red; Green; Indigo; Blue; Yellow; Orange] using 25 comparisons▼
Blue Red Yellow
Blue Red Yellow sorted to [|Red; Blue; Yellow|] using 3 comparisons
Enter colours seperated by spaces
Red Orange Yellow Green Blue Indigo Violet
▲
</pre>
|