макрос для поиска формы верхнего уровня, содержащей форму - PullRequest
1 голос
/ 10 марта 2020

Есть ли способ доступа к форме верхнего уровня с помощью макроса? Что-то с эффектом:

(defmacro which-defn []
     ....)

(defn hello []
  (which-defn))

(defn world []
  (which-defn))

(hello) => 'hello
(world) => 'world

1 Ответ

1 голос
/ 10 марта 2020

Эта функция уже существует в библиотеке Tupelo . Вам не нужен макрос:

(ns tst.demo.core
  (:use tupelo.core tupelo.test)
  (:require [tupelo.misc :as misc]))

(defn hello []
  (misc/fn-info))

(dotest
  (is= (hello)
    {:class-name  "tst.demo.core$hello",
     :file-name   "core.clj",
     :method-name "invokeStatic",
     :line-num    6,
     :ns-name     "tst.demo.core",
     :fn-name     "hello"}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...