1

我编写了一个函数来查找 asciibox 下一列的位置
,例如:

+-----++---++---+
|  a  || b || c |
+-----++---++---+

框 b 应从列“伪代码” {长度(框 a)} 开始,框 c 应从伪代码 {长度框 a + 长度框 b} 开始

所以我写了这个函数

f:: [Int]->[Int]->[Int]
f (x:xs) []  = f xs [x]
f  [] ys = ys
f (x:xs) ys = f xs (ys++[x+ last ys])

这给了我我想要的

f [23,24,25] [] 
ghci> [23,47,72]

我想知道其他算法是否可行。是否有“折叠”或“展开”或“迭代”的解决方案

谢谢

4

1 回答 1

5
> scanl (+) 0 [23, 24, 25]
[0,23,47,72]
于 2011-11-11T14:48:13.923 回答