Мне нужно получить имя вызывающей функции в Clojure. Что-то вроде комбинации неявной переменной макроса &form и *file* var. Мне нужно получить или вывести имя функции из этих переменных или что-то еще, если это возможно. Должно быть указано без платформы c.
&form
*file*
Эта функция уже существует в библиотеке Тупело . Есть две функции, которые являются тонкими оболочками над tupelo.misc/stacktrace-info
tupelo.misc/stacktrace-info
Они возвращают карту информации о текущей функции (или ее родителе), например:
{:ns-name 'demo.core' :fn-name 'add2' :class-name 'demo.core$add2' :file-name 'core.clj' :line-num 57 :method-name 'invokeStatic' }
Я думаю, вам придется использовать спецификацию платформы c
(-> (Throwable.) .getStackTrace) в java
(-> (Throwable.) .getStackTrace)
и
(-> (js/Error.) .-stack) в js и решить это из тех, к сожалению.
(-> (js/Error.) .-stack)
Я не думаю, что есть что-то платформенное агности c.