From: Gavin Sinclair Date: 2002-08-23T01:16:35+09:00 Subject: Re: the power of ruby I understand you're fairly new to Ruby, AW, but I must give you some guidance here. As cool as <> is, the main point of Paul's program was the iterator. The fact that his method "up_and_down" simply counts up and down, and is completely independent of what is being done with that count. That is good design, and highlights Ruby as a good language. I think you should thank Paul for imparting that lesson ;) Cheers, Gavin ----- Original Message ----- From: "AW" Newsgroups: comp.lang.ruby To: "ruby-talk ML" Sent: Thursday, August 22, 2002 5:33 AM Subject: Re: the power of ruby > puts "#{' ' * i}*" <-- That's a very nice way of doing it. > I think sometimes i forget the "*Everything* is an object" concept. ;) > > >I thought it might be interesting to write an iterator: > > > > WIDTH=78 > > > > def do_dot(i) > > puts "#{' ' * i}*" > > sleep 0.01 > > end > > > > def up_and_down(low, high) > > low.upto(high-1) do |i| > > yield i > > end > > high.downto(low+1) do |i| > > yield i > > end > > end > > > > loop do > > up_and_down(0, WIDTH) do |i| > > do_dot(i) > > end > > end > > > >The idea here is to separate what happens on each iteration from the > >iterating itself, and perhaps to be able to re-use the iterator > >somewhere else. > > > >I also added a sleep, because otherwise the stars jump around a bit too > >much in my terminal (Eterm). > > > >Paul > >