Hello, I'm trying to intercept each call to a recursive function in order to insert logging. It works on the first invocation but not on others. What am I missing?
(defn fact [n] (if (< n 2) 1 (* n (fact (dec n))))) ; Given function f, returns another function that ; does the same as f but also prints the arguments. (defn with-logging [f] (fn [& rest] (do (println (str rest)) (apply f rest)))) ; Factorial that prints its argument on each call. (defn fact-with-logging [n] (binding [fact (with-logging fact)] (fact n))) ; This prints (5) but not (4)...(1). Why? (fact-with-logging 5) Roman. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en