Re: Suggestions for translating a Do[] loop ...
- To: mathgroup at smc.vnet.net
- Subject: [mg69793] Re: [mg69773] Suggestions for translating a Do[] loop ...
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Sat, 23 Sep 2006 04:44:45 -0400 (EDT)
- References: <200609220505.BAA16564@smc.vnet.net>
On Sep 22, 2006, at 1:05 AM, 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.
r=Reverse[FoldList[#2[[1]] (#2[[2]]+#1)/(1+#2[[2]] #1)&,0,Transpose
[{Reverse[Most[a]],Reverse[Most[b]]}]]
Regards,
Ssezi
- References:
- Suggestions for translating a Do[] loop ...
- From: "David Annetts" <davidannetts@aapt.net.au>
- Suggestions for translating a Do[] loop ...