gpt4 book ai didi

haskell - 使用过滤器进行列表理解的最有效方法

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

我正在学习 Haskell,之前学过 Python,所以列表推导式很熟悉。请理解这个列表:

[x^2 | x <- [1..10], x^2 < 50]
[1,4,9,16,25,36,49]

表达式 x^2 是否对这里 x 的每个值进行两次计算?有没有办法编写这个推导式,使得表达式 x^2 仅计算一次?这样做是否有意义:

filter (< 50) [x^2 | x <- [1..10]]
[1,4,9,16,25,36,49]

这是更“Haskell 方式”的做事方式吗?而且效率更高吗?

最佳答案

您可以在列表推导式中使用 let:

[ z | x <- [1..10], let z = x^2, z < 50]

然后 x^2 仅计算一次。

关于haskell - 使用过滤器进行列表理解的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930132/

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