2011-02-13 12 views
1

私はClojure - マクロでdeftypeの変数を参照する方法?

(defmacro my-deftype [& code] `(deftype [email protected] (toString [this] var1))) 
(my-deftype Qqq [var1] Object) 

を行うと、それは適切なマクロでのDeftypeの変数を参照するためにどのようにCompilerException ... No such var: mynamespace/var1

を告げますか?私はマクロにメソッドのテンプレートを提供し、各メソッドのすべてのdeftypeの変数に言及しないようにしたい。

答えて

2

ネームスペース拡張は~'によって防止されるべきである:

(defmacro my-deftype [& code] `(deftype [email protected] (toString [~'this] ~'var1))) 
(my-deftype Qqq [var1] Object) 
関連する問題