This problem doesn’t even deserve an explanation and could easily be made a one-liner. Really, computing 2^1000 is just too easy.
(defn euler-16 []
(let [s (str (reduce * (repeat 1000 2)))
v (map #(Integer/parseInt (str %)) s)]
(reduce + v)))