Pasar lista de variables individualmente a la función clojure
He estado jugando con clojure, y decidí hacer una función de orden superior que combine mapcat y list para emular este comportamiento:
Clojure> (mapcat list '(1 2 3 4) '(5 6 7 8))
(1 5 2 6 3 7 4 8)
mi primer intento fue definir mapcatList de la siguiente manera:
Clojure> (defn mapcatList[& more](mapcat list more))
#'sandbox99/mapcatList
Clojure> (mapcatList '(1 2 3 4) '(5 6 7 8))
((1 2 3 4) (5 6 7 8))
Obviamente, la función no se comporta como me gustaría, y creo que esto se debe a que las dos listas se colocan en una lista y se pasan como un solo argumento, no como dos. Pude remediar la situación con lo siguiente,
Clojure> (defn mapcatList[x y & more](mapcat list x y))
#'sandbox99/mapcatList
Clojure> (mapcatList '(1 2 3 4) '(5 6 7 8))
(1 5 2 6 3 7 4 8)
Esta solución funciona bien con dos listas, pero me gustaría que la función funcione con un número variable de argumentos.
Mi pregunta: ¿Cómo puedo pasar un número variable de argumentos a una función, luego desestructurarlos para que se pasen juntos como argumentos individuales a 'mapcat list'?