gpt4 book ai didi

list - 从F#中的列表中删除Nans

转载 作者:行者123 更新时间:2023-12-04 05:06:10 25 4
gpt4 key购买 nike

我想从列表中删除nan,所以我实现了以下功能。

val it : float list =
[50.0; -20833.33333; 4.50701062e-14; -4.267032701e-15; 3.942195769e-16;
-3.555114863e-17; 3.130384319e-18; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0;
nan; nan; nan; nan; nan; nan; nan; nan; nan]

let rec remove_nan l =
match l with
| [] -> []
| x::rest -> if x=nan then remove_nan rest
else x::(remove_nan rest)

remove_nan points

但是,它不会从列表中删除 nan。为什么不将它们删除?

最佳答案

NaN具有奇异的方程特性。具体来说,nan = nan为假!在您的代码中使用此代码:

if System.Double.IsNaN x then remove_nan rest

或按以下方式定义 remove_nan,它更短并且不会增加堆栈:
let remove_nan = List.filter (System.Double.IsNaN >> not)

关于list - 从F#中的列表中删除Nans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158417/

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