Вопрос

У меня есть список кортежей, представляющих координаты точек.Как я могу отсортировать их по первому или второму значению, чтобы сначала упорядочивать свои баллы слева направо, а затем сверху вниз?

Это было полезно?

Решение

Звучит так, как будто вы хотите, например

myList |> List.sortBy fst

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

Но кортежи поддерживают структурное равенство и сравнение, поэтому сортировка по умолчанию (лексикографическая) может делать то, что вы хотите.

Другие советы

Боковое примечание:

Речь идет не о сортировке, но если вы используете кортежные координаты, вы можете захотеть использовать Установленный вместо Списка.Использование набора действительно помогло мне упростить реализацию Тетрис.

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

Измените a, b, если вам нужно наоборот

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top