bouzuya.hatenablog.com

ぼうずやのにっき

4Clojureを楽しむ(7)〜timeマクロ〜

4Clojureの#150を解いていて時間制限で何度もアウトになった。最適化するかアルゴリズムを見直さないといけない。こういうときは闇雲に最適化しようとするのではなく、まずは計測すべきである。

clojure.core/timeマクロを使えばお手軽に時間計測できる。

(time
  (map #(cond
        (zero? (mod % 15)) "FizzBuzz"
        (zero? (mod % 5)) "Buzz"
        (zero? (mod % 3)) "Fizz"
        :else %)
      (range 1 100)))
; "Elapsed time: 0.309987 msecs"

System/nanoTimeとかでも良いだろうけど、せっかく用意されているのでこちらを使ってみた。ちなみに#150はなんとかクリアできた。

24 min.