RosettaCodeData/Task/FizzBuzz/Retro/fizzbuzz.retro

27 lines
635 B
Plaintext

( empty string result to display result )
~~~
'result var
' s:format !result
'number var
#1 !number
~~~
( checks for empty string if result empty print number )
( else append fizz for divisible by 3 and prepend buzz for divisible by 5)
( if; exists the word fizzbuzz immediately )
~~~
:fizzbuzz (-)
@number #3 mod #0 eq? [ 'fizz @result s:append !result ] if
@number #5 mod #0 eq? [ 'buzz @result s:prepend !result ] if
' @result s:eq? [ @number n:put nl ] if;
' @result s:eq? not [ @result s:put nl ] if;
;
[ fizzbuzz 'result var
' s:format !result @number #1 + !number @number #100 lteq? ] while
~~~