Hey, I got myself a copy of The Joy of Clojure. It's a fascinating read, thanks for the recommendation!
N. On Dec 16, 4:10 pm, Tassilo Horn <tass...@member.fsf.org> wrote: > Narvius <narv...@gmail.com> writes: > > Hi Narvius, > > > So, my question is, why exactly DOESN'T it crash and burn horribly > > with the cries of dying bits in the background? I suppose it has > > something to do with how lazy-seqs work (another mystery for me). > > A lazy seq is basically a sequence of the first element and a "thunk", > where a thunk is a function without parameters that knows how to > calculate the rest of the lazy sequence. When you call `rest' or `next' > on a lazy seq, that thunk is called computing the next item (realizing > it) and the next thunk, which again knows how to compute the rest of the > seq. > > So although your lazy-seq function looks recursive, it's actually not. > Any thunk closes over the previous value in the seq, so it can be called > independently. > > By the way: that's explained very well (with images and stuff) in The > Joy of Clojure, in case you have that handy. > > Bye, > Tassilo -- 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 Note that posts from new members are moderated - please be patient with your first post. 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