(defn double [f] (fn [x] (f (f x)))) (print (((double (double double)) inc) 5))