Clojure - Funções Variadic

As funções variáveis ​​são funções que recebem vários argumentos (alguns argumentos são opcionais). A função também pode especificar o símbolo '&' e comercial para incluir um número arbitrário de argumentos.

O exemplo a seguir mostra como isso pode ser alcançado.

(defn demo 
   [message & others]
   (str message (clojure.string/join " " others)))

A declaração da função acima tem o símbolo '&' próximo ao argumento others, o que significa que ela pode receber um número arbitrário de argumentos.

Se você invocar a função acima como

Exemplo

(demo "Hello" "This" "is" "the" "message")

Resultado

A seguir será a saída.

“HelloThis is the message”

o ‘clojure.string/join’ é usado para combinar cada argumento de string individual, que é passado para a função.