: bottle(s) ( n -- bottle-string ) " bottle" swap 1 = [ "s" append ] unless ; [ 99 1 [a,b] [| n | n present n bottle(s) " of beer" append [ % " on the wall, " % ] [ % "!\n" % ] bi "Take one down, pass it around, \n" % n 1 = [ "no" % ] [ n 1 - # ] if " more" % n 1 - bottle(s) % " of beer on the wall!\n\n" % ] each ] "" make print nl