(def sum (partial reduce +)) (defn multiple-of [n] (fn [x] (zero? (mod x n)))) (def multiple-of-3? (multiple-of 3)) (def multiple-of-5? (multiple-of 5)) (sum (for [x (range 1001) :when (and (multiple-of-3? x) (multiple-of-5? x))] x)) (sum (filter #(and (multiple-of-3? %) (multiple-of-5? %)) (range 1 1001)))