 (ns fourclojure.4-clojure)
 
-;problem 69
+;problem 69 merge with function
 ((fn [f & ms]
    (into {} (for [[k v]
                   (group-by first

                       (recur ib (mod ia ib)))))]
           (count (filter #(= 1 (gcd % x)) (range 1 (inc x)))))) 99)

;problem 86
((fn [x]
   (letfn [(square-ch [y] (let [n (Integer/parseInt (str y))] (* n n)))]
     (loop [s (str x) ctrl #{}]

                              [k v]))]
              {k (reduce f (map second v))}))) concat {:a [3], :b [6]} {:a [4 5], :c [8 9]} {:b [7]})

;problem 70 camel casing
((fn [s]
   (let [[a & others] (clojure.string/split s (re-pattern "-"))]
     (apply str a
            (map #(let [[x & ys] %]
                    (apply str (Character/toUpperCase x) ys)) others)))) "multi-word-key")

;problem Euler's totient function
((fn [x] (letfn [(gcd [a b]
                   (loop [ia a ib b]
                     (if (= ib 0)
