Busco a través de algún ejemplo de Fibonacci código de secuencia clojure:¿Cuál es el punto de lazy-seq en clojure?
(def fibs (lazy-cat [1 2] (map + fibs (rest fibs))))
lo general entiendo lo que está pasando, pero no consigue el punto de lazy-cat
. sé que lazy-cat
es una macro que se traduce a algo como esto:
(def fibs (concat (lazy-seq [1 2]) (lazy-seq (map + fibs (rest fibs)))))
¿Qué es exactamente lazy-seq
que Realiza? ¿Todavía sería evaluado perezosamente incluso sin lazy-seq
? ¿Esto es estrictamente para el almacenamiento en caché?
EDIT: Gracias por las respuestas. Mi confusión fue que funcionó con un simple concat
de REPL porque tenía un enlace previo a fibs en el alcance.