If your goal is just to make it fast, then you should use a different 
algorithm, e.g.

(defn bump-up
  "Bump up n by a multiple of x until greater than or equal to k." 
  [n x k]
  (if (>= n k) n (recur (+ n x) x k)))

(defn bump-up-fast
  "Bump up n by a multiple of x until greater than or equal to k in O(1)."
  [n x k]
  <exercise for the reader>)

(defn lcm
  "Compute the least common multiple of a and b."
  [a b]
  (loop [n a k b]
    (cond 
      (< n k) (recur (bump-up n a k) k)
      (> n k) (recur n (bump-up k b n))
      (= n k) n)))

(defn smallest-multiple-of-1-to-n
  [n]
  (reduce lcm (range 1 (+ n 1))))

On Sunday, February 3, 2013 3:28:09 AM UTC+1, Alexandros Bantis wrote:
>
> Hello all. I'm working through the Project Euler problems in Java, 
> Scala, & Clojure (trying to learn all three?!?). I notice that for one 
> particular problem, I use--more or less--a similar algorithm for all 
> three, but the clojure code runs about 20-30 times slower than the 
> java/scala versions. Does anyone have any idea why this might be? It 
> strikes me that it might have something to do with every? but I don't 
> know because I'm a newbie with Clojure. 
>
>
> http://stackoverflow.com/questions/14668272/what-can-i-do-to-speed-up-this-code
>  
>
> thanks, 
>
> alex 
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to