0
我有一個初始列表。我想創建一個新的元素,使得它的每個元素都是零,並且是前一個元素+當前元素的總和。第二個元素在兩個列表中都是相同的。結合地圖+ foldl?
# preseudo code
lst = [.....]
newLst = []
newLst[0] = lst[0]
for i <- 1 to lst.length:
newLst[i] = max(0, newLst[i - 1] + lst[i])
我知道它與foldl
有關。但是,它也必須與map
,因爲這兩個列表具有相同的大小。但map
沒有累加器。我無法弄清楚如何合併它們。
我可以毫不scanl1使用遞歸? –
當然你可以用遞歸來做。只要看看scanl1是如何定義的。 – augustss
對不起,我找不到它的定義。你的意思是這個http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:scanl1?但這看起來不像一個定義。 –