В JavaScript можно сделать следующее:
function foo(arg1, arg2, arg3) {
...
}
var others = [ 'two', 'three' ];
foo('one', ...others); // same as foo('one', 'two', 'three')
В Clojure «переменные аргументы» могут быть приняты следующим образом:
(defn foo [arg1 & others]
...)
Но чтобы передать их в сочетании с другими аргументами, вы должны сделать это:
(apply foo (concat '("one") others))
Что, честно говоря, действительно безобразно. Также невозможно, когда то, что вам нужно сделать, это повторить:
(apply recur (concat '("one") others)) ;; doesn't work
Есть ли лучший способ сделать это? А если нет, то есть ли способ сделать это в случае recur
?