ClojureScript var argümanının statik, derleme zamanı meta verilerine dayanarak bir geri dönüş formunun oluşturulmasını bildiren bir ClojureScript makrosu (Clojure yoluyla yürütüldü/derlendi) oluşturmak istiyorum.Derleme zamanı cljs var meta verileri clj makrosuna nasıl erişilir?
ClojureScript kodundan derleme zamanı, statik değişken meta verilerine ((meta (var varsym))
; bkz. this post) erişmek mümkün olduğunu anlıyorum. Fakat bu veri, derleme sürecine bir makrodan erişebilmemiz için erişilebilir mi? İşte
get-meta-for-varsym
aşağıda yazacağımı nasıl gerçekten): Bunun için
;; executed/compiled in clj, targeting cljs
(defmacro themacro
[varsym & args]
(let [var-meta (get-meta-for-varsym varsym)
return-form (compile-return-form-from-metadata var-meta args)]
return-form))
JVM uygulamasının aksine, ClojureScript çalışma zamanında 'Var' kullanmaz, ancak bunun yerine çıplak Javascript değişkenlerini kullanır. –
@Nathan Davis: Yup; Onu anlıyorum. Ancak ClojureScript hala statik var metadata izin veren bir cephe oluşturur. Hangi güzel ve birçok amaç için yeterince iyi. – metasoarous