From: Robert Klemme Date: 2010-05-29T03:05:07+09:00 Subject: Re: A better way to write this function? On 28.05.2010 17:20, Jason Lillywhite wrote: > def velocity(c, m, t, dt, vi) > vel = [] > t += dt > steps = t/dt > > steps.times do > v = vi > vi = v + ( G - c/m*v) * dt > vel<< v > end > return vel > end > Just a slight improvement def velocity(c, m, t, dt, vi) vel = [] (t/dt + 1).times do vel << vi vi += ( G - c/m*v) * dt end vel end You could also do def velocity(c, m, t, dt, vi) (t/dt + 1).times do yield vi vi += ( G - c/m*v) * dt end end and use it with a block. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/