【发布时间】:2012-09-26 17:33:25
【问题描述】:
我有一系列数字:0、1、3、6、10、15、... 基本上,你加 1,然后你加 2,然后加 3,等等。
我必须创建一个函数,将列表中的这一系列数字返回给定数字 n。我想用 foldl。
所以,系列 5 应该返回 [0, 1, 3, 6, 10, 15]
这是我目前所拥有的:
eachElem n = foldl (+) 0 [0..n]
series n = [x | x <- [(eachElem 0), (eachElem 1)..(eachElem n)]]
基本上,我认为列表中的每个元素都是一个 foldl 操作,因此我制作了一个单独的辅助函数 (eachElem) 来完成此操作。
但是,它返回的列表比我想要的要大得多。
例如。系列 3 => [0,1,2,3,4,5,6] 什么时候它应该真正返回 [0,1,3,6]
有什么想法吗?
【问题讨论】:
-
这是作业吗?如果是这样,它应该被适当地标记。
-
没有homwework标签:meta.stackexchange.com/questions/147100/….
-
感谢 Mog 和 Jonke。我错过了备忘录。
-
@user1670032:如果某个答案对您有帮助,请不要忘记将其标记为已接受:meta.stackexchange.com/a/5235