遅延シーケンスでfizzbuzz
ブログに書くようなマトモなネタがなく、また放置気味になってるので、仕事の辛さについ現実逃避したコードとか挙げとく。
(defn- fb "convert num to FizzBuzz string" [x] (let [fbstr (str (if (zero? (rem x 3)) "Fizz" "") (if (zero? (rem x 5)) "Buzz" ""))] (if (= "" fbstr) (str x) fbstr))) (defn fizzbuzz-seq "returns the seq of FizzBuzz string" [] (map fb (drop 1 (range)))) (defn fizzbuzz "prints FizzBuzz strings at each line" [x] (doseq [s (take x (fizzbuzz-seq))] (println s)))
遅延シーケンス面白いね。