tags:

views:

240

answers:

3

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?

+4  A: 

Sounds like you want e.g.

myList |> List.sort_by 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.

Brian
sort_by was later renamed to sortBy
Sergej Andrejev
A: 
 let sorted = List.sort_by (fun (a,b) -> a,b) myList

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

Can Erten
+1  A: 

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.

gradbot