potan wrote in ru_clojure

letrec

Есть ли макрос, аналогичный letrec их scheme или аналог declare, но работающий внутри let?
Через def рекурсивное определение работает нормально:
(declare z)
(def x (cons 1 (lazy-seq (map + x z))))
(def z (cons 1 x))

А через let не компилируется: (let [a (cons 1 (lazy-seq (map + a (cons 0 a))))] (take 17 a))