在F#中对元组内的值进行排序

时间:2019-06-25 15:01:16

标签: sorting f# tuples

我有一个在其中存储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 个答案:

答案 0 :(得分:2)

记录列表可能更正确。如果您必须正好有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])