Re: generalized foldlist problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg69151] Re: [mg69057] generalized foldlist problem*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Thu, 31 Aug 2006 04:39:06 -0400 (EDT)*References*: <200608290725.DAA28981@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

On 29 Aug 2006, at 08:25, Arkadiusz Majka wrote: > DearAll, > > Please, help! > > I have two list > > list1={a,b,c,d,e} > list2={3,2,5,1,6} > > and I want to apply a modified version of FoldList to list1 in the > following way: list2 indicates that element a appears only 3 times (if > space enough) beginning from the beginning of the list , element b > appears 2 times, c - 5 times , etc. > > So the output should be > > GeneralizedFoldList[list1,list2]={a,a+b,a+b+c,c+d,c+e} > > Thanks for any hints, > > arek > Here is a solution which seems to me different from any of the ones I have seen posted so far: GF[list1_, list2_] := Module[{f, g}, Evaluate[Map[f, list1]] = list2; g[x_] := If[--f[x] < 0, 0, x]; FoldList[g /@ Plus[#1, #2] &, g[a],Rest[list1]]] GF[list1,list2] {a,a+b,a+b+c,c+d,c+e}

**References**:**generalized foldlist problem***From:*"Arkadiusz Majka" <Arkadiusz.Majka@telekomunikacja.pl>