История изменений
Исправление Nervous, (текущая версия) :
В Racket, например, раздельная компиляция для каждого модуля и если другой макрос в другой единице компиляции, то ничего он не получит
Ну вот такой примитивный примерчик набросал — вроде всё работает.
;; foo.clj
(ns foo)
(defmacro deffoo [val] `(def ~'foo ~val))
;; eval_when.clj
(ns eval-when
(:require [foo :refer [deffoo]]))
(deffoo (atom 0))
(swap! foo inc)
(println @foo)
;; 1
Линтеру, конечно, такие штуки не то, чтобы очень нравятся. Впрочем, и мне тоже.
Исходная версия Nervous, :
В Racket, например, раздельная компиляция для каждого модуля и если другой макрос в другой единице компиляции, то ничего он не получит
Ну вот такой примитивный примерчик набросал — вроде всё работает.
;; foo.clj
(ns foo)
(defmacro deffoo [val] `(def ~'foo ~val))
;; eval_when.clj
(ns eval-when
(:require [foo :refer [deffoo]]))
(deffoo (atom 0))
(swap! foo inc)
(println @foo)
;; 1