Language FAME
(implicit looping version)
| Date: | 12/19/06 |
| Author: | daveo |
| URL: | http://www.fametoys.com |
| Comments: | 0 |
| Info: | http://www.fame.com |
| Score: |
-- first, let's set up the text vars
block -- isolates overwrite setting to this block
overwrite on -- option set to freely create variables
%beer = " of beer"
b=" bottle"
%wall =" on the wall"
c=", "
p=". "
%Take="Take 1 down and pass it around, "
end block
-- next, define the quantity formula with "plurality" and caps where needed
-- (functions are database objects, formulae are "free code" thingys)
-- %plur takes 2 args: x:quantity and %Cap:"start of line" (boolean)
formula <over on> %plur = &&
( &&
if (x eq 0) then ( &&
(if (%Cap) then "N" else "n") &&
+ "o more" &&
) else &&
string(x) &&
) &&
+ b + &&
(if (x eq 1) then "" else "s")
-- Looping with a CASE range causes implicit looping
-- with "N" as the loop counter var
-- EVAL does basic "in-line macro substitution" of vars
-- in the formula before execution
display <case 100 to 1 step -1; image case row ""> &&
eval(%plur, x=N-1, %Cap=TRUE) + %beer + %wall + c &&
+ eval(%plur, x=N-1, %Cap=FALSE) + %beer + p + NEWLINE &&
+ (if N eq MINCASE then &&
"Go to the store and buy some more, " &&
+ eval(%plur, x=99, %Cap=FALSE) &&
else %Take + eval(%plur, x=N-2, %Cap=FALSE)) &&
+ %beer + %wall + p + NEWLINE
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