我有一系列数字: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)]]
Run Code Online (Sandbox Code Playgroud)
基本上,我认为列表中的每个元素都是一个foldl操作,因此我创建了一个单独的辅助函数(eachElem)来完成此任务.
但是,它返回的列表比我想要的要大得多.
例如.系列3 => [0,1,2,3,4,5,6]什么时候应该真的返回[0,1,3,6]
任何想法为什么会这样?