gpt4 book ai didi

f# - 如何从 F# 中的数组中获取最小值?

转载 作者:行者123 更新时间:2023-12-01 00:29:30 25 4
gpt4 key购买 nike

这是我能写的最接近的 F# 代码,用于查找数组的最小值:

let temp = 0
let getArrayMinValue (a : Array) =
if a.Length > 0 then (
for i = 0 to a.Length do
let temp = ( if temp > a.[i] then a.[i] else temp ) in ()
)

我有两个问题:首先,a.[i] 有编译错误:未定义字段、构造函数或成员“Item”。

其次,in ()是必需的,否则会出现编译错误“Block following this let is unfinished. Expect an expression”。这部分我不太明白。

预先感谢您的帮助。

最佳答案

你不能用Array.min吗?找到最小元素,如下所示:

let numbers =[|1..10|]

printfn "%A" (numbers |> Array.min)

来到你的程序中,你必须使用类似的东西:

let getArrayMinValue (a : int[]) = 

而不是 a: Array你甚至可以做 a: 'T[]但是由于您将元素的值与 temp 进行比较,因此可能会将其限制为 int。

来到另一个错误,使临时可变:let mutable temp = 0并使用 <- 赋值运算符(operator)。这是您的全部代码:

let mutable temp = 0


let getArrayMinValue (a : 'T[]) =
if a.Length > 0 then (
for i = 0 to a.Length do
temp <- ( if temp > a.[i] then a.[i] else temp )
)

关于f# - 如何从 F# 中的数组中获取最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com