 ;; - Show the example of efficient loop generation
 ;; --------------------------------------------------------
 
+;; Note: how to do recursive nested loops:
+#_(loop [i 5
+         r 0]
+    (if (pos? i)
+      (recur
+        (dec i)
+        (loop [j 5
+               r r]
+          (if (pos? j)
+            (recur (dec j) (inc r))
+            r)
+          ))
+      r))
+
 ;; Phase 1
 #_(defmacro inline-reduce
     [reducer initial transforms coll]

      `(if (~fct ~h)
         (inline-reducer ~reducer ~remaining ~r ~h)
         ~r)
      `(~reducer ~r ~h))))

(defmacro inline-reduce

              + 0
              [[:filter odd?] [:map #(* 2 %)]]
              coll))

    (report (inline-reduce
              + 0
              [[:filter odd?]
               [:map #(* 2 %)]
               [:mapcat (fn [x] [x x])]]
              coll))
    ))


