gpt4 book ai didi

F# Seq.sortBy 降序

转载 作者:行者123 更新时间:2023-12-03 11:30:14 26 4
gpt4 key购买 nike

我对 F# 还很陌生,使用了 Seq.sortBy 函数,但是它按升序对我的列表进行排序。如何使用 Seq.sort 按降序对其进行排序?

例如,示例代码将是...

let DisplayList =
seq{0..10}
|> Seq.sortBy(fun x -> x)
|> Seq.iter(fun x -> Console.WriteLine(x.ToString()))

给我 1 2 3 4 5 6 7 8 9 10 的输出,当我真的希望它从 10 到 1 时。

最佳答案

查看其他答案,请注意一元减号和 MININT:

let a = [| 1; -1; System.Int32.MinValue; 0; System.Int32.MaxValue; 1 |]

printfn "%A" (a |> Array.sortBy (fun x -> x))
// [|-2147483648; -1; 0; 1; 1; 2147483647|]

printfn "%A" (a |> Array.sortBy (fun x -> -x)) // uh-oh!
// [|-2147483648; 2147483647; 1; 1; 0; -1|]

我认为你实际上想要负 x 减一:
printfn "%A" (a |> Array.sortBy (fun x -> -x - 1))
// [|2147483647; 1; 1; 0; -1; -2147483648|]

对于跨越 -2^N..2^N-1 的环绕整数类型.

关于F# Seq.sortBy 降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111448/

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