In scala, you often use an iterator to do a for loop in an increasing order like:
for(i <- 1 to 10){ code }
How would you do it so it goes from 10 to 1? I guess 10 to 1
gives an empty iterator (like usual range mathematics)?
I made a scala script which solves it by calling reverse on the iterator, but it's not nice in my opinion, is this the way to go:
def nBeers(n:Int) = n match {
case 0 => ("No more bottles of beer on the wall, no more bottles of beer."+
"\nGo to the store and buy some more, "+
"99 bottles of beer on the wall.\n")
case _ => (n+" bottles of beer on the wall, "+n
+" bottles of beer.\n"+"Take one down and pass it around, "+
(if((n-1)==0) "no more" else (n-1))+
" bottles of beer on the wall.\n")
}
for(b <- (0 to 99).reverse)println(nBeers(b))
?? Any comments/suggestions?