(def factorial-infinite-list
  (iterate 
    (fn [[fact idx]]
      (let [idx (+ 1 idx)
            fact (* fact idx)]
        [fact idx])) 
    [1 0]))

(println (take 7 factorial-infinite-list) (nth factorial-infinite-list 10))