如何在 F# 中处理 Score 和 Value 数组

How to handle Score and Value arrays in F#

我有两个数组:Value 和 Score。 Score 数组给出了 Value 数组中每个项目的评分。 "proper" FP 的方式是什么得到最高分对应的值。我知道如何获得最高分,但另一个 post 建议获得相应的索引是不正确的 FP。

您可以压缩两个数组,然后应用 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