gpt4 book ai didi

f# - Seq.fold 和 bool 累加器

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

我永远找不到 F# 核心库的源代码。我知道它应该是开放的,但谷歌在帮助我找到它时对我并不友好,如果是这样,我会查找 Seq.fold 的实现 - 但问题就在这里。

有没有人看到以下代码段有任何问题:

let success = myList |>
Seq.fold
(fun acc item -> evaluation item)
false

从逻辑上讲,它似乎不保水,我可以并且将尝试对其进行测试。但我想问社区。如果 myList 中的任何单个评估返回 false,我希望成功变量为 false...

所以测试:
let myList = [true; true]
let success = List.fold (fun acc item -> acc && item) true myList


let myList = [true; false; true]
let success = List.fold (fun acc item -> acc && item) true myList

确实返回正确的结果 - 我只是看到源代码会更舒服......

最佳答案

我认为你正在寻找的是这样的:

let success = myList |>
Seq.fold
(fun acc item -> acc && evaluation item)
true

这也提供了“短路”评估,因此如果 acc 是 false来自之前的评估, evaluation item不会运行,表达式只会返回 false .

MSDN documentation for fold operator

关于f# - Seq.fold 和 bool 累加器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962074/

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