Fizzbuzz in Yip!

1 run-fizzbuzz
: multiple-of? # ( x n -- ? )
  fx/ swap drop 0 eq? ;

: fizzbuzz # ( n -- str )
  dup cond:
    ( ( [dup 15 multiple-of?] ["fizzbuzz"] )
      ( [dup 3 multiple-of?]  ["fizz"] )
      ( [dup 5 multiple-of?]  ["buzz"] )
      [ drop repr ]
    ) ;
  ;

: run-fizzbuzz # ( n -- n )
  dup 30 fx<= .if:
    [ [ fizzbuzz display nl ] keep 1 fx+ run-fizzbuzz ]
    [ drop ] ;
  ;

:site use render-self: {:page-title "Fizzbuzz in Yip!"};