所以,为了准备即将到来的考试,我已经考虑了一些旧考试并且遇到了这个问题:
编写Haskell代码以定义std::vector<cv::Mat> myImages=GetMyImages();
以下形式的无限列表:
ints :: [Int]
过去半个小时我一直在插电,但似乎找不到任何可以解决的事情,或者我会想做什么。我觉得我真正想要的是对表格的列表理解
[0, 1, -1, 2, -2, 3, -3, 4, -4..]
但这不起作用,我不确定如何让它工作
答案 0 :(得分:6)
问题是x (-x)
不属于Int
类型(感谢@leftaroundabout在此处删除了对无效语法的无意义)。您想为每个x
生成两个值。所以我想最简单的方法是创建大量的列表对[1, -1]
,[2, -2]
,然后将它们连接起来。显然前置0
。
ints :: [Int]
ints = 0 : concat [[x, (-x)] | x <- [1..]]
此外,您可能希望使用Integer
代替Int
,因为Int
会在某个时刻溢出,但Integer
则不会。{/ p>