Re: Suggestions for translating a Do[] loop ...
- To: mathgroup at smc.vnet.net
- Subject: [mg69790] Re: Suggestions for translating a Do[] loop ...
- From: dh <dh at metrohm.ch>
- Date: Sat, 23 Sep 2006 04:44:27 -0400 (EDT)
- References: <eevtpj$hfr$1@smc.vnet.net>
Hi David; Note that if you reverse your lists, the loop runs forward. With list reversed: FoldList[(#2[[1]](#2[[2]]+#1))/(1+#2[[2]] #1)&,0,Drop[Transpose[{a,b}],1]] Daniel David Annetts wrote: > Hi, > > Given that a, b & r are lists of the same length, can anyone suggest a > translation of the following Do[] loop to something functional? It looks > like an ideal application for Fold, but for me, the loop going backwards is > really obscuring things. > > The loop is > > Do[ > r[[j]] = a[[j]] * (b[[j]] + r[[j + 1]]) / (1 + b[[j]] * r[[j > + 1]]), > {j, Length@a - 1, 1, -1} > ]; > > with r[[Length@a]] = 0. > > Many thanks, > > Dave. >