Language Prolog
(ISO Prolog w/ red cuts)
| Date: | 04/12/06 |
| Author: | Brent Spillner |
| URL: | n/a |
| Comments: | 1 |
| Info: | n/a |
| Score: |
% 99 bottles of beer song implemented in Prolog
% Released into the public domain in 2006 by Brent Spillner
wall_capacity(99).
wait(_) :- true.
report_bottles(0) :- write('no more bottles of beer'), !.
report_bottles(X) :- write(X), write(' bottle'),
(X = 1 -> true ; write('s')),
write(' of beer').
report_wall(0, FirstLine) :-
(FirstLine = true -> write('No ') ; write('no ')),
report_bottles('more'), write(' on the wall'), !.
report_wall(X, _) :- report_bottles(X), write(' on the wall').
sing_verse(0) :- !, report_wall('No more', true), write(', '),
report_bottles('no more'), write('.'),
nl, write('Go to the store and buy some more, '),
wall_capacity(NewBottles), report_wall(NewBottles, false),
write('.'), nl.
sing_verse(X) :- report_wall(X, true), write(', '),
report_bottles(X), write('.'), nl,
write('Take one down and pass it around, '),
Y is X - 1, report_wall(Y, false), write('.'), nl, nl,
wait(5), sing_verse(Y).
:- wall_capacity(Bottles), sing_verse(Bottles).
Download Source | Write Comment
Alternative Versions
| Version | Author | Date | Comments | Rate |
|---|---|---|---|---|
| Tweaked Remkos version | M@ | 11/28/05 | 2 | |
| iso, using DCG | none | 04/28/11 | 0 |
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments