You should take a look at tools.trace [1]. A minimal example:
(ns trc.core
(:use [clojure.tools.trace :only [deftrace]]))
(deftrace fib [n]
(if (or (= n 0) (= n 1))
1
(+ (fib (- n 1)) (fib (- n 2)))))
the following is printed when (fib 4) is evaluated:
TRACE t2302: (fib 4)
TRACE t2303: | (fib 3)
TRACE t2304: | | (fib 2)
TRACE t2305: | | | (fib 1)
TRACE t2305: | | | => 1
TRACE t2306: | | | (fib 0)
TRACE t2306: | | | => 1
TRACE t2304: | | => 2
TRACE t2307: | | (fib 1)
TRACE t2307: | | => 1
TRACE t2303: | => 3
TRACE t2308: | (fib 2)
TRACE t2309: | | (fib 1)
TRACE t2309: | | => 1
TRACE t2310: | | (fib 0)
TRACE t2310: | | => 1
TRACE t2308: | => 2
TRACE t2302: => 5
[1]: https://github.com/clojure/tools.trace
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en