99 bottles of beer

From Esolanging
Jump to navigationJump to search

A 99 bottles of beer program is a program solving the popular problem of "singing" the song "99 Bottles of Beer", which goes something like this:

99 bottles of beer on the wall,
99 bottles of beer.
Take one down, pass it around,
98 bottles of beer on the wall.

98 bottles of beer on the wall,
98 bottles of beer.
Take one down, pass it around,
97 bottles of beer on the wall.

...

1 bottle of beer on the wall,
1 bottle of beer.
Take one down, pass it around,
No bottles of beer on the wall.

There are, of course, several variations on the song and/or the program. Some variants include the following final verse:

No bottles of beer on the wall,
No bottles of beer.
Go to the store, buy some more,
99 bottles of beer on the wall.

Some versions ignore the singular form of "bottle" in the case of 1 bottle, using simply "bottle(s)" or "bottles" everywhere instead. Some display the numeral 0 instead of the word "No" for the final count of bottles. These tactics are considered cheating by some, but are nevertheless quite common. Another version uses "No more bottles" instead of just "No bottles".

Purpose

99 Bottles of Beer is often one of the first programs to be written in a new esoteric programming language, to demonstrate that it can loop and halt under a certain condition. While suggestive that the language is "usable for computation", it does not constitute a proof that it is Turing-complete. However, a language can "cheat" over it by printing this message without using a loop. This does not demonstrate that this language is usable for computation.

List of implementations

𝒫′′

Gzip-base64ed:

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
zIJan/mf/wEBKoOi97IBAA==