home *** CD-ROM | disk | FTP | other *** search
- \ Answer for problem 3.21 by Dickson Cheng 04/04/90 21:30:34.56
-
-
-
- \ Leaves true flag if speed < 0
- : BROKEN? ( speed -- flag ) 0< ;
-
- \ Leaves true flag if speed is smaller than 16 kmph
- : VERY_SLOW? ( speed -- flag ) 16 < ;
-
- \ Leaves true flag if speed is smaller than 31 kmph
- : SLOW? ( speed -- flag ) 31 < ;
-
- \ Leaves true flag if speed is smaller than 56 kmph
- : NORMAL? ( speed -- flag ) 56 < ;
-
- \ Leaves true flag if speed is smaller than 66 kmph
- : FAST? ( speed -- flag ) 66 < ;
-
- \ Leaves true flag if speed is smaller than 100 kmph
- : VERY_FAST? ( speed -- flag ) 100 < ;
-
- \ Leaves true flag if speed is smaller than 200 kmph
- : DANGEROUS? ( speed -- flag ) 200 < ;
-
- \ Leaves true flag if speed is over 199
- : DEADLY? ( speed -- flag ) 199 > ;
-
-
- \ Check speed and print appropriate message
- : SPEED_CHECK ( speed -- )
- DUP BROKEN?
- IF ." Impossible speed, Radar Gun error." DROP
- ELSE DUP VERY_SLOW?
- IF ." Issue ticket, impeding traffic flow." DROP
- ELSE DUP SLOW?
- IF ." Issue warning, impeding traffic flow." DROP
- ELSE DUP NORMAL?
- IF ." No action, safe speed." DROP
- ELSE DUP FAST?
- IF ." Issue warning, exceeding speed limit." DROP
- ELSE DUP VERY_FAST?
- IF ." Issue ticket, exceeding speed limit." DROP
- ELSE DUP DANGEROUS?
- IF ." Arrest motorist, dangerous driving." DROP
- ELSE DUP DEADLY?
- IF ." Deadly serious, got to catch him."
- THEN
- THEN
- THEN
- THEN
- THEN
- THEN
- THEN
- THEN ;
- IF ." Deadly serious, got to catch him."
-
-
-
-
-