RosettaCodeData/Task/Happy-numbers/Clojure/happy-numbers-1.clj

16 lines
369 B
Clojure
Raw Permalink Normal View History

2013-04-10 21:29:02 -07:00
(defn happy? [n]
(loop [n n, seen #{}]
2015-02-20 00:35:01 -05:00
(cond
(= n 1) true
(seen n) false
:else
(recur (->> (str n)
(map #(Character/digit % 10))
(map #(* % %))
(reduce +))
(conj seen n)))))
2013-04-10 21:29:02 -07:00
(def happy-numbers (filter happy? (iterate inc 1)))
(println (take 8 happy-numbers))