(defn compose [f g] (fn [x] (f (g x)))) (defn repeated [f n] (defn iter [inner_f k] (cond (= k 1) inner_f (iter (compose f inner_f) (- k 1)))) (iter f n)) (defn square [x] (* x x)) (print ((repeated square 2) 5))