Just another quick post this evening to share a new function I created as part of cleaning up my solution to Problem 1 of Project Euler.
Was just responding to a comment on Google+ on my update sharing the post Project Euler in Clojure – Problem 16, and I saw the commenter had his own solution to problem 1. In sharing my solution I realized that I could clean up my results even further, and added a function
has-factors-in?. These updates have also been pushed to my Project Euler in Clojure Github repository for those interested.
(defn has-factors-in? [n coll] (some #(factor-of? % n) coll))
Where before I had:
(defn problem1 ( (problem1 1000)) ([n] (sum (filter #(or (factor-of? 3 %) (factor-of? 5 %))) (range n))))
It now becomes:
(defn problem1 ( (problem1 1000)) ([n] (sum (filter #(has-factors-in? % [3 5]) (range n)))))
This change makes my solution read even more like the problem statement given.