Map, For, and Reduce

(doc reduce)
(reduce + '(1 2 3 4 5))
(reduce * '(1 2 3 4 5))
(reduce str '(1 2 3 4 5))
(reduce max '(1 2 3 4 5))
(reduce min '(1 2 3 4 5))
(map +
  '(1 2 3 4 5)
  '(2 3 4 5 6))
(map *
  '(1 2 3 4 5)
  '(2 3 4 5 6))
(map *
  '(1 2 3 4 5)
  '(2 3 4 5 6 7 8 9 10 11 12))
(let [fn #(+ 4 %)]
  (fn 10))
(let [fn #(+ 4 (* % %))]
  (fn 10))
(map #(* %1 %2)
  '(1 2 3 4 5)
  '(2 3 4 5 6))
(map #(* (+ %1 1) (+ %2 1))
  '(1 2 3 4 5)
  '(2 3 4 5 6))
(map #(* 10 %)
  '(1 2 3 4 5))
(reduce str
  (map #(* % 10)
    '(1 2 3 4 5)))
(let [fn (partial * 4)]
  (fn 10))
(map (partial * 10)
  '(1 2 3 4 5))
(let [a '(1 5 4 2 3)]
  (map (partial nth a) [0 1 4]))
(for [x (range 10)] x)
(for [x (range 10)]
  (* x 2))
(for [x (range 10) :when (even? x)]
  (* x 2))
(for [x (range 3)
  y (range 3)] (str x y))