【发布时间】:2015-06-10 20:04:14
【问题描述】:
所以,在为即将到来的考试做准备时,我正在复习一些旧考试,并遇到了这个问题:
编写 Haskell 代码来定义ints :: [Int] 一个如下形式的无限列表:
[0, 1, -1, 2, -2, 3, -3, 4, -4..]
在过去的半个小时里,我一直在努力解决它,但似乎找不到任何解决问题的方法,或者可以满足我的要求。我觉得我真正想要的是表单的列表理解
ints :: [Int]
ints = [0] ++ [x (-x) | x <- [1..]]
但这不起作用,我不确定如何让它工作
【问题讨论】:
-
x是一个数字,而不是一个函数... -
另见universe 包,它以
universe的名义提供ints,并且适用于许多类型,而不仅仅是Int。Integer的顺序与此处给出的顺序相匹配(尽管不是Int的顺序);我敢打赌你无论如何都想要Integer,因为你声称你想要一个无限列表,而ints不是。
标签: haskell list-comprehension