在Haskell中使用scanl函数

问题描述

我正在编写一个带有int列表并使用scanl返回总和的函数

下面的代码有效。

输入:[1,2,3]

sum_calc list = scanl (+) 0 [1..10]

输出:[0,1,3,6,10,15,21,28,36,45,55]

我想对其进行编辑,以使输出仅上升到输入列表的最后一个元素。我尝试使用0 [1..length列表],但是haskell向我吐了出来。

解决方法

您可以这样写:

sum_calc = scanl (+) 0

所以sum_calc [1,2,3]返回[0,1,3,6]

您也可以写

sum_calc list = scanl (+) 0 list

如果您对list的消失感到困惑。