Да, вы можете использовать макросы в REPL, как и в коде.
Полное имя макроса в вашем примере - clojurescripting.macros/increment
(не clojurescripting.core/increment
), и, предполагая, что пространство имен макросов было загружено, вы можете вызвать макрос (как это сделано в примере в вашем коде) , Вот пример:
cljs.user=> (clojurescripting.macros/increment 0)
1
Если пространство имен макросов не было загружено, вы можете сделать это из REPL с помощью require-macros
. Вот пример, который работал бы, даже если ни одно из ваших пространств имен не загружало пространство имен макросов:
cljs.user=> (require-macros 'clojurescripting.macros)
nil
cljs.user=> (clojurescripting.macros/increment 0)
1
Вы также можете использовать псевдонимы пространства имен
cljs.user=> (require-macros '[clojurescripting.macros :as macros])
nil
cljs.user=> (macros/increment 0)
1
и ссылаться на макро переменные
cljs.user=> (require-macros '[clojurescripting.macros :refer [increment]])
nil
cljs.user=> (increment 0)
1
Все это должно работать непосредственно в REPL.
Фактически, все варианты, обсуждаемые на https://clojurescript.org/guides/ns-forms, должны работать в REPL, используя require-macros
вместо :require-macros
и require
вместо :require
, и т. Д. .