99 Bottles of Beer


"99 Bottles of Beer" or "100 Bottles of Pop on the Wall" is a traditional reverse counting song from the United States and Canada. It is popular to sing on road trips, as it has a very repetitive format which is easy to memorize and can take a long time when sung in full. In particular, the song is often sung by children on long school bus trips, such as class field trips, family road trips, or on Scout or Girl Guide outings. In computer science, printing the lyrics of "99 Bottles of Beer" is a commonly used task to demonstrate esoteric programming languages.

History



Lyrics

The song's lyrics are as follows, beginning with n=99:
bottles of beer on the wall.
bottles of beer.
Take one down, pass it around,
bottles of beer on the wall.


\layout

The same verse is repeated, each time with one bottle fewer, until there is none left. Variations on the last verse following the last bottle going down include lines such as:
Or:
Other alternate lines read:
Or:
Or the song does not stop at the last "1" or "0" bottles of beer but continues counting with
continuing onward through the negative numbers.

Full-length recitals

Singing all verses takes an extraordinarily long time. The American comedian Andy Kaufman used this for comedic effect early in his career when he actually sang all 100 verses.
Atticus, a band from Knoxville, Tennessee, recorded a thirteen and a half minute live version of the song in its entirety at the Glasgow Cathouse in Scotland. It was included in the 2001 album Figment. Rich Stewart aka Homebrew Stew listed it as the number one drinking song out of 86 in an article for Modern Drunkard Magazine the following year.

Mathematically inspired variants

Donald Byrd has collected dozens of variants inspired by mathematical concepts and written by himself and others.
Byrd argues that the collection has pedagogic as well as amusement value. Among his variants are:
Other versions in Byrd's collection involve concepts including geometric progressions, differentials, Euler's identity,
complex numbers, summation notation, the Cantor set, the Fibonacci sequence, and the continuum hypothesis, among others.

Example

C">C (programming language)">C


  1. include
  2. include
int main

Rust">Rust (programming language)">Rust

fn main

[Haskell]


verses ::
verses =
"1 bottle of beer on the wall, 1 bottle of beer.\nTake one down and pass it around, there's no more bottles of beer on the wall!"
: "2 bottles of beer on the wall, 2 bottles of beer.\nTake one down and pass it around, now there's 1 more bottle of beer on the wall!"
: map
main :: IO
main = mapM_ putStrLn

Python">Python (programming language)">Python


n_bottles = 99
for n in range:
print
print
print
print
print
print
print
print

R">R (programming language)">R


positive_bottles <- function
zero_bottles <- "No more bottles of beer on the wall,
no more bottles of beer.
There's nothing else to fall,
because there's no more bottles of beer on the wall."
for
positive_bottles |> cat
cat