作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我能写的最接近的 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/
我是一名优秀的程序员,十分优秀!