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
-~----------~----~----~----~------~----~------~--~---

Reply via email to