: bottle(s) ( n -- str ) " bottle" over 1 = [ "s" append ] unless [ dup 0 = [ drop "no more" ] [ present ] if ] dip append ; [ 10 1 [a,b] [| n | n bottle(s) " of beer" append [ % " on the wall, " % ] [ % "!\n" % ] bi "Take one down, pass it around, \n" % n 1 - bottle(s) % " of beer on the wall!\n\n" % ] each ] "" make print nl