There is already an "iterate" in Clojure.
Your implementation much have shadowed it.
user=> (doc iterate)
-------------------------
clojure/iterate
([f x])
Returns a lazy seq of x, (f x), (f (f x)) etc. f must be free of
side-effects
nil
user=> (iterate #(+ 1 %) 1)
(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 3
0 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ...)
But it doesn't take multiple arguments like your
implementation. Thats a nice enhancement.
Parth