小编Diw*_*mer的帖子

在clojure的FizzBu​​zz的两个解决方案中,为什么一个更快?

在clojure中FizzBu​​zz的两个解决方案中,为什么第一个更快?

; #1
(defn fizzbuzzer [z]
    "fizzbuzz checker."
    (let [fizz? (zero? (rem z 3))
          buzz? (zero? (rem z 5))
          fizzbuzz? (and fizz? buzz?)]

        (cond fizzbuzz? "FizzBuzz"
              buzz? "Buzz"
              fizz? "Fizz"
              :else z)))

; #2
(defn fizzbuzzer2 [z]
    "fizzbuzz checker."
    (let [fb (str
                (if (zero? (rem z 3)) "Fizz" "")
                (if (zero? (rem z 5)) "Buzz" ""))]
        (if (seq fb) fb z)))

; profiling ;
; (time (fizzbuzzer 1500))
;  => "Elapsed time: 0.098058 msecs"
; (time (fizzbuzzer2 1500))
;  => …
Run Code Online (Sandbox Code Playgroud)

profiling clojure fizzbuzz

3
推荐指数
1
解决办法
507
查看次数

标签 统计

clojure ×1

fizzbuzz ×1

profiling ×1