Pergunta

Eu tenho uma lista de tuplas que representam coordenadas de pontos. Como posso ordenar-los pelo primeiro ou segundo valor, para que eu pudesse encomendar os meus pontos da esquerda para a primeira à direita e de cima para baixo próxima?

Foi útil?

Solução

Parece que você quer por exemplo.

myList |> List.sortBy fst

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

Mas tuplas apoiar a igualdade estrutural e comparação, de modo que o padrão de classificação (lexicográfico) pode fazer o que quiser.

Outras dicas

Nota lateral:

Isto não é sobre a classificação, mas se o seu usando coordenadas tupled você pode querer usar um Set vez de uma lista. Usando um conjunto realmente me ajudou a simplificar a minha implementação de Tetris .

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

Alterar a a, b, se você precisa o contrário

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top