Как я могу получить стек вызовов в Clojure?

У меня есть точка в моем коде clojure, где я хочу знать, что такое стек вызовов (т.е. список функций clojure, используемых для его получения). Как я могу это сделать?

Ответ 1

Это не самое приятное решение, но оно простое и должно работать в ядре clojure:

(try (throw (Exception. "")) (catch Exception e (.printStackTrace e *out*)))

Вы можете проверить e в коде, если хотите что-то другое, кроме печатной версии. См. Также clojure.stacktrace в текущей ведущей ветке или clj-stacktrace для clojure 1.2.