У меня есть список кортежей, представляющих координаты точек. Как я могу отсортировать их по первому или второму значению, чтобы я мог расположить свои точки слева направо первым и сверху вниз, затем?
Звучит так, как вы хотите, например,
myList |> List.sortBy fst
http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/FSharp.Core/Microsoft.FSharp.Collections.List.html
Но кортежи поддерживают структурное равенство и сравнение, поэтому сортировка по умолчанию (лексикографическая) может делать то, что вы хотите.
Примечание стороны:
Это не о сортировке, но если вы используете кортежные координаты, вы можете использовать Set вместо списка. Использование набора действительно помогло мне упростить мою реализацию Tetris .
let sorted = List.sort_by (fun (a,b) -> a,b) myList
Измените a, b, если вам нужно наоборот