Sto provando a scrivere una macro che sviluppi middleware simile a quella usata in compojure.Macro Clojure che crea una funzione di ordine superiore da una funzione
voglio essere in grado di chiamare:
(def-middleware plus-two [x]
(+ 2 x))
E avere il risultato assomigliare:
(defn plus-two [f]
(fn [x]
(f (+ 2 x)))
ho fino a questo punto dalla lettura guide on-line, ma non è il lavoro fuori per me:
(defmacro def-middleware [fn-name args & body]
'(defn ~fn-name [f]
(fn ~args
(f [email protected]))))
Qualsiasi aiuto o un puntatore a una migliore guida per la scrittura di macro sarebbe fantastico, grazie.
Come funziona per te? –
CompilerException java.lang.RuntimeException: il primo argomento di def deve essere un simbolo, la compilazione: (NO_SOURCE_PATH: 33) – jdoig
usa il back-tick, non la virgoletta singola – Alex