Mam clojurescript z powodzeniem importując makra z innych przestrzeni nazw. Zastanawiam się jednak, czy jednolita konstrukcja jest/powinna być możliwa przy clojure 1.7, tak aby można było zdefiniować i wykorzystać makro. To, co próbowałem, nie działa, ale być może brakowało mi jakiegoś szczegółu.może cljc definicje pojedynczych plików makro do pracy z clojurescript?
(ns cljc.core)
#?(:cljs
(enable-console-print!))
#?(:clj
(defmacro list-macro [x y]
`(list ~x ~y)))
(defn foo [a]
(println (list-macro a a)))
(foo :a)
Ta postać nie z list-macro
jest niezdefiniowana przy kompilacji cljs; jeśli usuwam: clj guard around makro-listy, to defmacro jest niezdefiniowany w kompilacji cljs. Czy istnieje sposób?
Nie. Makra ClojureScript są nadal Clojure. Robią swój czas kompilacji pracy - kiedy kod ClojureScript jest skompilowany do JavaScript. Muszą więc najpierw zostać skompilowane (od Clojure do JVM), zanim nastąpi jakakolwiek kompilacja ClojureScript. – muhuk