Question

I have a list of tuples representing coordinates of points. How can I sort them by the first or second value, so that I could order my points from left to right first and from top to bottom next?

Was it helpful?

Solution

Sounds like you want e.g.

myList |> List.sortBy fst

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

But tuples support structural equality and comparison, so the default sort (lexicographical) may do what you want.

OTHER TIPS

Side Note:

This isn't about sorting but if your using tupled coordinates you may want to use a Set instead of a List. Using a Set really helped me to simplify my implementation of Tetris.

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

Change the a,b if you need the other way around

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top