Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :noname ." Bazz" ;
- :noname ." Buzz" ;
- :noname ." Fizz" ;
- create responses , , ,
- : divisibility>flags ( compilation: mn..m1 n -- ; run-time: n -- n )
- 0 postpone literal
- 0 do
- postpone over
- postpone literal postpone mod postpone 0= postpone if
- 1 i lshift postpone literal
- postpone +
- postpone then
- loop
- ;
- : flags>messages ( compilation: n addr -- ; run-time n -- )
- { addr }
- 0 do
- postpone dup
- 1 i lshift postpone literal
- postpone and postpone if
- addr i cells + @ postpone literal postpone execute
- postpone then
- loop
- ;
- : fizzbuzz ( n -- )
- 1+ 1 do
- cr
- i [ 5 3 2 divisibility>flags ] dup 0= if
- drop i .
- else
- [ 2 responses flags>messages ]
- then
- loop
- ;
- : fizzbuzzbazz ( n -- )
- 1+ 1 do
- cr
- i [ 7 5 3 3 divisibility>flags ] dup 0= if
- drop i .
- else
- [ 3 responses flags>messages ]
- then
- loop
- ;
- \ examlpes:
- \ 100 fizzbuzz
- \ 105 fizzbuzzbazz
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement