Dipping my toes for the first time in Clojure. Having some beginner
troubles.
THIS code works (on the repl, if that matters... also, Clojure 1.2):
(defn show [words]
(let [word (first words)]
(do
(println word)
(if (nil? word)
(println "DONE")
(recur (rest words))))))
(show '("some" "sample" "words"))
... this shows the 3 words, then DONE, and terminates.
But originally, I was trying to use loop/recur. If I replace the
"let" with "loop" in the above code, it goes into an infinite loop. I
assume there's something different in the scoping/binding rules with
loop, but I can't find a good explanation of what. I read in
"Programming Clojure", regarding loop, that it "...works like let,
establishing bindings and then evaluating exprs..."
Noob Q#2: should I (and when) use "next" instead of "rest" on a seq?
a lazy seq?
Thanks!
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en