On Sat, 21 Jul 2001, Glen Starchman wrote:

> 99.downto(0){|x|w=" on the wall";u="#{x!=0?eval(x.to_s):'no more'} 
> #{x>1?'bottles':'bottle'} of beer";p"#{u}#{w} #{u}. Take one down, pass 
> it around,#{u}#{w}"}
> 
> 
> 159 characters... can it be squeezed down any further?

I don't think this one quite works - you don't decrement the bottle count
after the "Take one down".

Here's an incremental squeezing of an earlier solution, I think by Steven
Grady, down to 164 (or has someone already done that?):

def b(n)"#{n>0?n: 'No more'} bottle#{'s'if n!=1} of beer"end
99.downto(1){|n|w=" on the wall";puts "#{b(n)+w}, #{b n}\nTake one down, pass it around\n#{b(n-1)+w}."}