list - 在 Haskell 中生成无限列表 [0, 1, -1, 2, -2, ...

标签 list haskell infinite list-manipulation

所以假设我们要生成列表[0, 1, -1, 2, -2, ...在 haskell 。

完成此任务的最优雅方法是什么?

我想出了这个解决方案:

solution = [0] ++ foldr (\(a,b) c->a:b:c) [] zip [1..] $ map negate [1..]

但我相信一定有更好的方法。

最佳答案

这似乎是理解的目的:

solution = 0 : [y | x <- [1..], y <- [x, -x]]

关于list - 在 Haskell 中生成无限列表 [0, 1, -1, 2, -2, ...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129923/

相关文章:

python - 列表排序/修改问题

Python列表实现和pympler测量

python - 如何将列表中的每个元素分配给单独的变量?

haskell - 如何找出运算符 "+"的类型?

haskell - Haskell 中的斐波那契数列

foreach - 在 kotlin 中返回/突破无限 foreach

c - 以下循环运行无限时间。为什么?

c# - 在列表中选择不同的两个属性

haskell - 在 Haskell 中使用包装器的混合类型列表

list - Haskell 中无限列表的笛卡尔积