27 lines
635 B
Plaintext
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
|
|
|
|
~~~
|