gpt4 book ai didi

list - 在 Haskell 中使用列表理解生成列表列表的函数

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

我想编写一个函数,它使用列表理解来生成一个列表列表,其工作方式如下:

makeList 3 == [[1],[1,2],[1,2,3]]
makeList 5 == [[1],[1,2],[1,2,3],[1,2,3,4],[1,2,3,4,5]]
makeList (-2) == []

我最终得到了这个解决方案,但它显然没有给我从问题中需要的东西:

let makelist x = [x | x <- x, y <- [1..x]]

所以如果我输入这个

Prelude> makelist [3]

输出将显示如下:

[3,3,3]

我想先成为列表中的列表,然后再增加它。谢谢你的帮助!

最佳答案

让我们先尝试生成一个内部列表,对于某个限制 m:

> let inner m = [1..m]
> inner 5
[1,2,3,4,5]

现在,观察你的外部列表,对于某个限制 n,是 [inner 1, inner 2, inner 3, ..., inner n],或者,以列表理解形式:

> let outer n = [inner m | m <- [1..n]]
> outer 3
[[1], [1,2], [1,2,3]]

所以我们可以将两者组合成单个列表理解表达式:

> let makeList n = [[1..m] | m <- [1..n]]
> makeList 4
[[1],[1,2],[1,2,3],[1,2,3,4]]

关于list - 在 Haskell 中使用列表理解生成列表列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457101/

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