Frage

Ich habe eine Liste von Tupeln Koordinaten von Punkten darstellt. Wie kann ich sie durch den ersten oder zweiten Wert sortieren, so dass ich meine Punkte von links nach rechts ersten und von oben nach unten als nächstes?

War es hilfreich?

Lösung

Klingt wie Sie beispiels wollen.

myList |> List.sortBy fst

http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/FSharp.Core/Microsoft.FSharp.Collections.List.html

Aber Tupel unterstützt strukturelle Gleichheit und Vergleich, so die Standard-Sortier (lexikographischen) kann tun, was Sie wollen.

Andere Tipps

Side Hinweis:

Dies ist nicht über das Sortieren, aber wenn Ihr mit fach vervielfachten Koordinaten möchten Sie vielleicht eine Set statt einer Liste. ein Set hat mir wirklich geholfen Mit meiner Implementierung von Tetris zu vereinfachen .

 let sorted = List.sort_by (fun (a,b) -> a,b) myList

die eine Änderung, b, wenn Sie die andere Art und Weise brauchen um

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top