2013-04-01 2 views
6

Ist es möglich, ein qualifiziertes Schlüsselwort innerhalb einer Makroauflösung im Namespace des Aufrufers zu haben? Zum Beispiel:Clojure: Qualifiziertes Schlüsselwort in einem Makro, das im Namespace des Aufrufers aufgelöst wird?

(ns a) 
(defmacro m [] `(do ::k)) 

Und in einem anderen Namensraum:

(ns b) 
(use 'a) 
(m) 

In diesem Beispiel löst (m)-:a/k (der Namensraum, wo das Makro definiert ist). Ich frage mich, ob es eine Möglichkeit gibt, es zu lösen, um :b/k (der Namespace, in dem das Makro heißt) zu lösen.

Antwort

5

(defmacro m [] (keyword (name (ns-name *ns*)) "k"))

Verwandte Themen