Вам нужно будет использовать apply
(поскольку параметр selectors
делает функцию переменной), чтобы вызвать функцию с использованием простой рекурсии, как показано ниже:
(defn filter-tags [xml & selectors]
(if (and (seq selectors) (seq xml))
(apply filter-tags
(->>
xml
(filter #(= (first selectors) (:tag %)))
(map :content)
flatten)
(rest selectors))
xml))
Или сделать ее не переменной, тогда вашнормальный рекурсивный вызов будет работать