gpt4 book ai didi

haskell - 自生成列表,其中每个元素都将一些元素附加到末尾

转载 作者:行者123 更新时间:2023-12-03 15:04:43 30 4
gpt4 key购买 nike

我正在寻找一种方法来做这样的事情。
假设我们从 1 开始。对于每个奇数,我们将其 +5 添加到列表的末尾。对于每个偶数,我们将其添加 +3 并将其 +7 添加到列表的末尾。列表看起来像这样

[1, 6, 9, 13, 14, 18, 17, 21, 21, 25,...]

我将如何在 Haskell 中做这样的事情?

我知道您可以制作一个列表,其中每个元素都依赖于前一个元素,但是当多个元素依赖于同一个元素时,您如何做到这一点,并且您不知道哪个组取决于哪个组,除非您开始从一开始就?

最佳答案

以下解决方案使用自引用惰性列表,因此不存在@GaneshSittampalam 解决方案的线性时间问题:

xs = 1 : concatMap extras xs where
extras x
| odd x = [x+5]
| otherwise = [x+3,x+7]

关于haskell - 自生成列表,其中每个元素都将一些元素附加到末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056605/

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