Я не знал, как это сформулировать, но вот проблема:
(defmacro defbasic [val-fn]
(let [;; Like str but keywords are str'd without :
fn-name (fdat/->string "make-" val-fn)
;; This is a hashmap got from basic-builders
;; which is def
options (get basic-builders val-fn)]
`(defn ~fn-name
([]
(~fn-name {}))
([descriptor]
(->basic-operation ~options descriptor)))))
Функция -> basic-operation работает и определена ранее.Цель макроса состоит в том, чтобы создать универсальные средства управления, такие как:
(defbasic :cat) ;; ==> defn a make-cat function
Я видел броски спецификации clojure, но я не вижу, в чем проблема.Я вижу карту и правильные данные.
Я думал, что, возможно, проблема в том, что существует список артерий?
Спасибо