title: Which is better?: (reduce + ...) or (apply + ...)?
body: <p>Should I use</p>
  
  <pre><code>(apply + (filter prime? (range 1 20)))
  </code></pre>
  
  <p>or </p>
  
  <pre><code>(reduce + (filter prime? (range 1 20)))
  </code></pre>
  
  <p>Edit: This is the source for prime in clojure from optimizing toolkit.</p>
  
  <pre><code>(defn prime?  [n]  
    (cond
      (or (= n 2) (= n 3))          true
      (or (divisible? n 2) (&lt; n 2)) false
      :else                        
       (let [sqrt-n (Math/sqrt n)]
         (loop [i 3]
             (cond
                (divisible? n i) false
                (&lt; sqrt-n i)     true
                :else            (recur (+ i 2)))))))
  </code></pre>