Fibonacci Sequence using loop and recur
Posted
by
AdamJMTech
on Stack Overflow
See other posts from Stack Overflow
or by AdamJMTech
Published on 2011-06-23T13:02:54Z
Indexed on
2011/06/23
16:23 UTC
Read the original article
Hit count: 298
clojure
|project-euler
I am doing the Project Euler challenge in Clojure and I want to find the sum of all the even numbers in a fibonacci sequence up to a certain number.
The code for a function that does this is below. I know there are quicker and easier ways of doing this, I am just experimenting with recursion using loop and recur. However the code doesn't seem to work it never returns an answer.
(defn fib-even-sum [upto]
(loop [previous 1 nxt 1 sum 0]
(if (or (<= upto 1) (>= nxt upto))
sum)
(if (= (mod nxt 2) 0)
(recur nxt (+ previous nxt) (+ sum nxt))
(recur nxt (+ previous nxt) sum))))
I was not sure if I could do recur twice in the same loop or not. I'm not sure if this is causing the problem?
© Stack Overflow or respective owner