Как избежать анафорного макроса в Clojure?

Возьмем этот (упрощенный) пример:

(defmacro make [v & body]
  `(let [~'nv ~(some-calc v)]
     ~(map #(if (= % :value) 'nv %) body)))

Прямо сейчас символ nvжестко запрограммирован. Есть ли способ каким-то образом сгенерировать gensym nvи при этом иметь возможность использовать его в функции карты?

Кстати, это вообще анафорический макрос?

9
задан Philip Kamenarsky 19 March 2012 в 02:46
поделиться