给定一个整数列表从-273到5526,我想打印最接近零的整数。如果有相等的情况(n和-n),我们应该选择n。
let temps = // this contains => 1 -2 -8 4 5
let (|Greater|_|) a b = if a > b then Some() else None
let (|Smaller|_|) a b = if a < b then Some() else None
let compareTemperatures a b =
let distanceA = abs a
let distanceB = abs b
match distanceA with
| Greater distanceB -> b
| Smaller distanceB -> a
| _ -> abs a
printfn "%i" (temps |> Seq.reduce compareTemperatures)
我翻译一下,这段代码返回的是-8而不是1。我认为看起来是正确的,但是由于我刚学习F#可能在任何地方都有错误,我找不到错误的位置:(
提前感谢您的帮助。