bindings => name n Repeatedly executes body (presumably for side-effects) with name bound to integers from 0 through n-1.
user=> (dotimes [n 10] (println (map #(* % (inc n)) (range 1 11)))) (1 2 3 4 5 6 7 8 9 10) (2 4 6 8 10 12 14 16 18 20) (3 6 9 12 15 18 21 24 27 30) (4 8 12 16 20 24 28 32 36 40) (5 10 15 20 25 30 35 40 45 50) (6 12 18 24 30 36 42 48 54 60) (7 14 21 28 35 42 49 56 63 70) (8 16 24 32 40 48 56 64 72 80) (9 18 27 36 45 54 63 72 81 90) (10 20 30 40 50 60 70 80 90 100) nil
user=> (dotimes [x 8] (print x) (dotimes [y x] (print (get (vec "Clojure") y))) (newline)) 0 1C 2Cl 3Clo 4Cloj 5Cloju 6Clojur 7Clojure nil ;ranges with dotimes (dotimes [y 5] (println (map #(inc %) (range (inc y))))) (1) (1 2) (1 2 3) (1 2 3 4) (1 2 3 4 5) nil ;factorials using ranges by dotimes (dotimes [y 5] (println "factorial" (inc y) " = " (apply * (map #(inc %) (range (inc y)))))) factorial 1 = 1 factorial 2 = 2 factorial 3 = 6 factorial 4 = 24 factorial 5 = 120 nil
Returns a lazy (infinite!, or length n if supplied) sequence of xs.
List comprehension. Takes a vector of one or more binding-form/collection-expr pairs, each follow...
Repeatedly executes body (presumably for side-effects) with bindings and filtering as provided by ...