#145
For the win
| Difficulty: | Elementary |
| Topics: | core-functions seqs |
Clojure's for macro is a tremendously versatile mechanism for
producing a sequence based on some other sequence(s). It can take some time to
understand how to use it properly, but that investment will be paid back with
clear, concise sequence-wrangling later. With that in mind, read over these for
expressions and try to see how each of them produces the same result.
![]() | (= __ (for [x (range 40)
:when (= 1 (rem x 4))]
x)) |
![]() | (= __ (for [x (iterate #(+ 4 %) 0)
:let [z (inc x)]
:while (< z 40)]
z)) |
![]() | (= __ (for [[x y] (partition 2 (range 20))]
(+ x y))) |

