gpt4 book ai didi

performance - 如果我们应该在 Haskell 中避免使用foldl,那么我们是否也应该避免基于它的所有助手呢?

转载 作者:行者123 更新时间:2023-12-02 21:51:25 25 4
gpt4 key购买 nike

鉴于(?)foldl' 始终优先于 foldl,这是否意味着像 maximum 这样基于 的帮助器>foldl 也是最好避免的吗?

应该使用类似 foldl 的东西吗?打包以获得高效的折叠,这应该成为像 foldl' 的用法这样的常识吗?

最佳答案

我不会说 foldl'foldl 更好。碰巧,折叠的许多使用都会产生较小的结构,而严格性对于避免过多的 thunk 创建并从而节省内存很有用。

例如,如果您考虑使用 foldl' 生成一个列表(例如 foldl' (++) []),那么您仍然可以get thunks 创建,因为严格性不是 deep .

Prelude Data.List> null (foldl' (++) [] [[0], undefined]])
False

另一方面,如果折叠的结果是其输入的扩展,则严格折叠可能会影响性能。所以在不同的情况下,不同的折叠功能是有用的。

关于performance - 如果我们应该在 Haskell 中避免使用foldl,那么我们是否也应该避免基于它的所有助手呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22246317/

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