Language Occam
| Date: | 04/20/05 |
| Author: | Tony Curtis |
| URL: | n/a |
| Comments: | 0 |
| Info: | n/a |
| Score: |
-- compiled with the University of Kent "kroc" compiler
-- Tony Curtis <Tony.Curtis@vcpc.univie.ac.at> 1997
--
PROC beer (CHAN OF BYTE key, screen, error)
VAL INT BEERS IS 99 : -- big fridge!
#USE "tty_utils.tco"
PROC sorp (VAL INT n, CHAN OF BYTE out) -- singular or plural?
IF
n > 1
out.string ("s", 1, out)
TRUE
SKIP
:
PROC sayit (VAL INT n, CHAN OF BYTE out) -- text for each iteration
SEQ
out.number (n, 1, out)
out.string (" bottle", 1, out)
sorp (n, out)
out.string (" of beer on the wall, ", 1, out)
out.number (n, 1, out)
out.string (" bottle", 1, out)
sorp (n, out)
out.string (" of beer.", 1, out)
out.string ("*c*n", 1, out)
out.string ("Take one down, pass it around, ", 1, out)
VAL INT next IS n - 1 :
IF
next > 0
SEQ
out.number (next, 1, out)
out.string (" bottle", 1, out)
sorp (next, out)
out.string (" of beer on the wall.", 1, out)
TRUE
out.string ("no bottles of beer on the wall.", 1, out)
out.string ("*c*n", 1, out)
:
PROC beers (VAL INT nbeers, CHAN OF BYTE out)
INT b :
SEQ
b := nbeers
WHILE b > 0
SEQ
sayit (b, out)
b := b - 1
:
beers (BEERS, screen)
:
Download Source | Write Comment
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