# Archive for category Declarative Programming

### Clojure function has-factors-in?

Posted by Proctor in Clojure, Declarative Programming, Deliberate Practice, Functional Programming, Lisp, Project Euler, Refactoring on August 27, 2012

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.

Your thoughts?

–Proctor