This question leads into something that I read in Joy of Clojure (page
161 in the latest MEAP edition):
"If you manage to hold onto the head of a sequence somewhere within a
function, then that sequence will be prevented from being garbage
collected. The simplest way to retain the head of sequence is to bind
it to a local. This condition can occur with any type of value bind be
it to a reference type or through the usage of let or binding."

I am not sure what this means, but I think it would mean that using
let as you do, could cause garbage collection problems.  Thus, it
might be better to follow the advice of Stuart and Luc.


Chad

PS. Clarification of the statement from the Joy of Clojure would be
helpful.


On Oct 19, 11:19 pm, Dave Ray <dave...@gmail.com> wrote:
> Hey,
>
> I'm parsing a file with a chain of filter and map operations. To make
> it a little more readable (to me), I put the steps in a let like this:
>
> (defn parse-dictionary
>   [reader]
>   (let [lines    (read-lines reader)
>         trimmed  (map #(.trim %1) lines)
>         filtered (filter is-dictionary-entry? trimmed)]
>      (map parse-entry filtered)))
>
> Is this style of let considered good/bad stylistically? Are there
> technical tradeoffs between this and a bunch of nested forms?
>
> Thanks!
>
> Dave

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

Reply via email to