99 Bottles of Beer
aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Version vom 3. März 2007, 19:11 Uhr von Enki (Diskussion | Beiträge)
99 bottles in Forth
99 bottles of beer on the wall, 99 bottles of beeeeer . . . , Take one down, pass it around, 98 bottles of beer on the wall. ...
| 99 Bottles of Beer in Reva Forth | by Phantasus : .bottle ( n -- n) dup 1 >if ." bottles of" space ;then ." bottle of" space ; : .wall ( n -- n ) dup 0 >if dup . .bottle ." beer on the wall," cr ;then ." No more bottles of beer on the wall." cr ; : .beer ( n -- n ) dup . .bottle ." beeeeer . . . ," cr ; : .take ( n -- n-1 ) ." Take one down, and pass it around," cr 1- ; : 99beer ( -- ) 99 100 1 do .wall .beer .take .wall cr loop ." Time to buy more beer!" cr ; 99beer
99 bottles in SPL
for (var i=99; i>=0; i--) { write("\n${i ? i : "No more"} bottle${i != 1 ? "s" : ""} of beer on the " "wall, ${i ? i : "no more"} bottle${i != 1 ? "s" : ""} of beer.\n"); write(i>0 ? "Take one down and pass it around, " : "Go to the store and buy some more, "); write("${i ? i>1 ? i-1 : "no more" : 99} bottle${i == 2 ? "" : "s"} " "of beer on the wall.\n${i ? "" : "\n"}"); }
#!/usr/bin/env python # 99 bottles of beer in Python by Ricardo Garcia. Public Domain code. # Fully compliant version, pretty indentation, fits in 80x24. plural = lambda n: n != 1 and "s" or "" number = lambda n: n == 0 and "No" or str(n) next = lambda n: (n - 1) % 100 pu_line = lambda n: n == 0 and "Go to the store and buy some more" or \ "Take one down, pass it around" verses = lambda n: "%s bottle%s of beer on the wall!\n" \ "%s bottle%s of beer!\n" \ "%s\n" \ "%s bottle%s of beer on the wall!\n" % \ ( number(n), plural(n), number(n), plural(n), pu_line(n), number(next(n)), plural(next(n)) ) print "\n".join([verses(x) for x in range(99, -1, -1)])