Ali*_*ice 1 haskell functional-programming
我需要计算haskell中列表的部分和.我怎么能这样做?
如果我有
partialSum (1:3:5:[]) => (1:4:9:[])
partialSum [] => []
partialSum (from 1) => 1:3:6:10:...
Run Code Online (Sandbox Code Playgroud)
partialSum :: Num a => [a] -> [a]
partialSum = drop 1 . scanl (+) 0
?> take 10 $ partialSum [1..]
[1,3,6,10,15,21,28,36,45,55]
Run Code Online (Sandbox Code Playgroud)
编辑: OP要求的版本没有scanl
:
partialSum :: Num a => [a] -> [a]
partialSum (x:xs) = x : map (+ x) (partialSum xs)
partialSum [] = []
Run Code Online (Sandbox Code Playgroud)