: divides ( x y -- ? ) mod zero? ; : divides-5-or-3 ( x -- ? ? ) [ 5 divides? ] [ 3 divides? ] bi ; : output ( n ? ? ? -- ) [ "Fizz" write ] when [ "Buzz" write ] when [ drop ] [ number>string write ] if "\n" write ; : fizzbuzz ( -- ) 100 [1,b] [ dup divides-5-or-3 [ or ] 2keep output ] each ;