gpt4 book ai didi

f# - Seq.sort 和 Seq.sortBy 对于包含 NaN 的 float 序列的不一致行为

转载 作者:行者123 更新时间:2023-12-04 15:21:32 26 4
gpt4 key购买 nike

在对包含 NaN 的浮点数序列进行排序时,Seq.sort 将 NaN 放在结果的开头:

> [ 0.0; nan; 1.0; nan; -1.0 ] |> Seq.sort
val it : seq<float> = seq [nan; nan; -1.0; 0.0; ...]

然而, Seq.sortBy 似乎失败了,只是简单地传递序列,未排序。大概这是因为 NaN 违反了基本的排序原则。
> [ 0.0; nan; 1.0; nan; -1.0 ] |> Seq.sortBy id
val it : seq<float> = seq [0.0; nan; 1.0; nan; ...]

不会抛出可能表明 sortBy 未能生成排序列表的异常,这可能导致依赖它的代码中出现令人惊讶的行为。一旦发现问题,就很容易对其进行编码,但很难预测,因此很可能导致错误。

sort 和 sortBy 以这种方式不一致是否有充分的理由?

最佳答案

关于f# - Seq.sort 和 Seq.sortBy 对于包含 NaN 的 float 序列的不一致行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29972746/

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