Возможно, это не то, что вам нужно на уровне одной функции (см. Комментарий Чарльза Даффи ниже), но если вы хотите получить обзор того, что происходит на уровне пространства имен (или нескольких), вы можете использовать tools.trace (раскрытие: Я вкладчик):
(ns foo.core)
(defn foo [x] x)
(defn bar [x] (foo x))
(in-ns 'user) ; standard REPL namespace
(require '[clojure.tools.trace :as trace])
(trace/trace-ns 'foo.core)
(foo.core/bar 123)
TRACE t20387: (foo.core/bar 123)
TRACE t20388: | (foo.core/foo 123)
TRACE t20388: | => 123
TRACE t20387: => 123
Это не поймает внутренние функции и такие (как указал Чарльз), и может быть подавляющим с большими кодовыми графиками, но при изучении небольших графиков кода это может быть весьма удобно.
(Это также можно проследить индивидуально подобранные Vars, если группы интересов не идеально выровнены с пространствами имен.)
Кстати, автоматическая трассировка и маркировка кода Clojure со значениями его переменных во время выполнения - одна из вещей, которые [редактор Light Table] (http://lighttable.com/), для всех своих сломанных обещаний , приводит к таблице. –
Я просто запустил отладчик IntelliJ и установил точки останова. Прекрасно работает для меня. – Carcigenicate