Have you figured this out yet? On Mon, Feb 23, 2009 at 4:58 PM, Jeffrey Straszheim < straszheimjeff...@gmail.com> wrote:
> The identifier "fibl" is holding on to the head of the sequence. > > > On Mon, Feb 23, 2009 at 4:04 PM, bsmith.occs <bsmith.o...@gmail.com>wrote: > >> >> ;; >> --------------------------------------------------------------------- >> ;; using clojure.jar from source r1301 >> ;; >> ;; I'm new to clojure and working from B7.0 of Programming Clojure. >> ;; This version still uses lazy-cons. Nevertheless I'm trying to grok >> lazy-seq >> ;; as described here: http://clojure.org/lazy >> ;; >> ;; It seems I've not understood it because I'm getting >> OutOfMemoryError >> ;; below and this surprises me >> >> >> ;; bog-standard iterative fib. >> ;; This works as expected >> >> (defn fibi [n] >> (loop [a 0, b 1, i n] >> (if (<= i 0) a >> (recur b (+ a b) (dec i))))) >> >> ;; (count (str (fibi 100000))) >> ;; --> 20899 >> >> >> ;; my attempt to define a lazy fib sequence. >> ;; working? not so much. >> >> (def fibl >> ((fn h [a b] (lazy-seq (cons a (h b (+ a b))))) 0 1)) >> >> ;; (count (str (last (take 100000 fibl)))) >> ;; --> java.lang.OutOfMemoryError: Java heap space >> >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---