f# - F# 库是否具有 `argMax` 的标准函数?

标签 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'

最佳答案

是的,但它叫 List.maxBy .

下面是一个例子:

let f x = -(x * x) + 100 * x + 1000
List.maxBy f [0..1000]
// val it : int = 50

f 50
// val it : int = 3500

还有List.minBy相同的功能可用于 SeqArray .

关于f# - F# 库是否具有 `argMax` 的标准函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936987/

相关文章:

r - 为什么 R.predict.svm 返回错误大小的列表?

xamarin - 在 Fabulous (F#) UWP 应用中使用 Xamarin Essentials 文件选取器

arrays - BigQuery 参数最大值 : Is array order maintained when doing CROSS JOIN UNNEST

F# 源文件的编译器顺序

f# - 使用 Unquote 断言时的 MissingMethodException

wpf - 使用 WPF 和 MVVM 编辑 F# 记录

Python - 获取最密集点的坐标

python - 如何获取 pandas 数据框中的行,列中有最大值并保留原始索引?

python - Pandas:重新采样数据框列,获取对应于最大值的离散特征

python - 3 维 ndarray 的最后一个维度上的棘手 numpy argmax