(defn is-fizz [n] (= 0 (mod n 3)))

(defn is-buzz [n] (= 0 (mod n 5)))

(defn is-fizzbuzz [n] (= 0 (mod n 15)))

(defn get-fizz-buzz [n]
    (cond
        (is-fizzbuzz n) "Fizz Buzz"
        (is-fizz n) "Fizz"
        (is-buzz n) "Buzz"
        :default n))

(defn fizz-buzz-seq
    ([] (fizz-buzz-seq 1))
    ([n] (lazy-seq
            (cons (get-fizz-buzz n) (fizz-buzz-seq (inc n))))))

(defn run
    "Prints out \"Fizz Buzz\" sequence to 36.
    Check against http://en.wikipedia.org/wiki/Fizzbuzz"
    []
    (dorun (map #(println %) (take 36 (fizz-buzz-seq)))))

(run)