Сортировка значений внутри кортежа в F # - PullRequest
2 голосов
/ 25 июня 2019

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

Исходный кортеж:

({X = 5; Y = 1; By = B}, {X = 4; Y = 0; By = B}, {X = 5; Y = 0; By = B})

Хотелось бы получить:

({X = 4; Y = 0; By = B}, {X = 5; Y = 0; By = B}, {X = 5; Y = 1; By = B})

Я хочу, чтобы кортежи сначала сортировались по X, а затем по Y. Я довольно новичок в F # и, следовательно, я борюсь с этим. Любая помощь приветствуется.

1 Ответ

2 голосов
/ 26 июня 2019

Список записей, вероятно, будет более правильным. Если у вас должно быть ровно 3 элемента, и вы хотите, чтобы они были заказаны, я бы, по крайней мере, использовал бы список в качестве промежуточного представления только из-за простоты использования.

let sort (a,b,c) = 
    let l = [a;b;c] |> List.sortBy (fun r -> r.X, r.Y)
    (l.[0], l.[1], l.[2])
...