Domanda

Ho un elenco di tuple che rappresentano le coordinate dei punti. Come posso ordinarli in base al primo o al secondo valore, in modo da poter ordinare i miei punti da sinistra a destra prima e dall'alto in basso in seguito?

È stato utile?

Soluzione

Sembra che tu voglia ad es.

myList |> List.sortBy fst

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

Ma le tuple supportano l'uguaglianza strutturale e il confronto, quindi l'ordinamento predefinito (lessicografico) può fare quello che vuoi.

Altri suggerimenti

Nota a margine:

Non si tratta dell'ordinamento, ma se si utilizzano coordinate tuple, è possibile che si desideri utilizzare un Set anziché un elenco. L'uso di un set mi ha davvero aiutato a semplificare la mia implementazione di Tetris .

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

Cambia a, b se ti serve viceversa

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top