如何处理F#中的分数和值数组

时间:2015-02-28 16:32:21

标签: arrays f#

我有两个数组:值和分数。 Score数组为Value数组中的每个项目提供评级。什么是"适当的" FP方式获取对应最高分的值。我知道如何获得最高分,但另一篇文章表明获得相应的索引并不合适FP。

1 个答案:

答案 0 :(得分:1)

您可以压缩两个数组,然后应用maxBy函数:

let value = [| 4; 3; 8; 2|]
let score = [|35;25;60;20|]

let valScore = Array.zip value score
let maxScore = Array.maxBy snd valScore
let result   = fst maxScore

当然,如果您只对最终结果感兴趣,可以一步完成所有操作,如果数组庞大,您可以使用Seq:

let result = Seq.zip value score |> Seq.maxBy snd |> fst