-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
The Clojure Workshop
By :
Before we get started with recursion, let's take a look at the doseq macro. It is arguably the most procedural of Clojure's looping alternatives. At least, it looks a lot like the foreach loop found in other languages. Here's a very simple use of doseq:
user> (doseq [n (range 5)] (println (str "Line " n))) Line 0 Line 1 Line 2 Line 3 Line 4 nil
Translated into English, we might say: "For each integer from 0 to 5, print out a string with the word 'Line' and the integer." You might ask: "What is that nil doing there?" Good question. doseq always returns nil. In other words, doseq doesn't collect anything. The sole purpose of doseq is to perform side effects, such as printing to the REPL, which is what println does here. The strings that appear in your REPL—Line 0, Line 1, and so on—are not returned values; they are side effects.
Note...