summaryrefslogtreecommitdiff
path: root/examples/fizzbuzz.dumb
blob: 3cd0dbae61e21c9fac8f752178d9659da7620dc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PROC MAIN
  ''' bottom of the stack is the incrementing value, starts at 1 '''
  1
  ''' while the incrementing value is <= 100 '''
  WHILE 100 OVER <= DO
    ''' push string "Buzz" if inc. is divisible by 5, else an empty string '''
    5 OVER % IF 0 == DO "Buzz" ELSE "" END
    ''' push string "Fizz" if inc. is divisible by 3, else an empty string '''
    OVER 3 SWAP % IF 0 == DO "Fizz" ELSE "" END
    ''' concat the two strings and copy the inc., if the string is empty, swap them '''
    ++ OVER SWAP IF DUP "" == DO SWAP END
    ''' print the top of the stack, drop the next item, add 1 to inc. '''
    PUTLN DROP 1 +
  END
END