17
Not using map/reduce, but iterate can avoid recursion too.
(defn iter [[x y]]
(vector y (+ x y)))
(nth (iterate iter [0 1]) 10000)
This takes 21ms on an Intel 2.4 Ghz
On the same machine, reduce takes 61msec. Not sure why iterate is faster.
(time (reduce
(fn [[a b] _] [b (+ a b)]) ; function to calculate the next pair of values
[0 1] ; initial pair of fibonnaci numbers
(range 10000)))