5
私はF#を初めて使い、言語に慣れるための簡単なアルゴリズムを書いています(argMax
が必要です)。標準ライブラリには、関数を最大化するリスト要素を検索する関数が付属していますか?はい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'