В clojure, как применить макрос к списку?

Вclojure, apply не может быть применен к макросу. Например(apply and [true false]) выдвигает исключение Я думал о следующем обходном пути:

(defmacro apply-macro[func args] `(~func ~@args))

На первый взгляд, это работает довольно хорошо:

(apply-macro and [true 5]); 5
(apply-macro and [true 5 0]); 0
(let [a 0] (apply-macro and [true a])); 0

Но когда я передал ему переменную, которая указывает на вектор, он рухнул.

(let [a [true]] (apply-macro and a));  java.lang.IllegalArgumentException:
   ;Don't know how to create ISeq from: clojure.lang.Symbol

Какое разочарование!!!!

Любая идея, как исправитьapply-macro?

Ответы на вопрос(5)

Ваш ответ на вопрос