USING: math.ranges math sequences prettyprint kernel ; IN: fizz-buzz; : divides? ( x y -- x bool ) dupd mod 0 = ; : output ( x bool bool -- x y ) [ [ "FizzBuzz" ] [ "Fizz" ] if ] [ [ "Buzz" ] [ dup ] if ] if ; : fizz-buzz ( start end -- ) [a,b] [ 5 divides? swap 3 divides? swapd output . drop ] each ; 1 10 fizz-buzz