5
Sono nuovo di F # e sto scrivendo un semplice algoritmo per abituarmi alla lingua, che richiede argMax
. La libreria standard ha una funzione per cercare un elemento di lista che massimizzi una funzione? Cioè, se c'è una funzione esistente che si comporta come questo:La libreria F # ha una funzione standard per `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'