gpt4 book ai didi

f# - 如何获取列表减少抛出算术溢出

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

因此,昨天在编写一些 F# 代码作为编码练习的一部分时,另一位开发人员指出了一些有趣的事情。我们只是在快速编写一段代码来演示对列表求和。如果我做:

[1..100000] |> Seq.sum

我收到以下错误:
System.OverflowException: Arithmetic operation resulted in an overflow.
at <StartupCode$FSI_0003>.$FSI_0003.main@()
Stopped due to error

但是,如果我这样做:
[1..100000] |> List.reduce (+)

我得到:
val it : int = 705082704

我意识到虽然这两段代码应该实现相同的目的,但它们却大不相同。我只是好奇有没有办法让 List.reduce 抛出 OverflowException 而不是给我一个糟糕的答案?

最佳答案

您可以使用选中的运算符:

[1..100000] |> List.reduce (Checked.(+))

关于f# - 如何获取列表减少抛出算术溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18337441/

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