我是 F# 的新手,正在编写一些简单的算法来习惯这种语言,这需要argMax
. 标准库是否带有用于搜索最大化功能的列表元素的功能?也就是说,如果有一个行为像这样的现有函数:
let argMax f xs =
let rec go a fa zs =
match zs with
| [] -> a
| z :: zs' ->
let fz = f z
if fz > fa
then go z fz zs'
else go a fa zs'
match xs with
| [] -> invalidArg "xs" "empty"
| x :: xs' -> go x (f x) xs'