: bottle(s) ( n -- bottle-string ) " bottle" swap 1 = [ "s" append ] unless ; clear 99 1 [a,b] [| n | n number>string n bottle(s) " of beer on the wall, " n number>string pick " of beer!" append append append append append print "Take one down, pass it around, " print n 1 - dup 0 = [ "no" ] [ dup number>string ] if " more " n 1 - bottle(s) append " of beer on the wall!" append append print nl drop ] each