Símbolo Ampersand - marcador de argumentos variádicos


O símbolo & (ampersand) é o marcador sintático utilizado no vetor de parâmetros de uma função para indicar o início dos argumentos variádicos.

NOTE

Todo argumento posicionado após o & é coletado pelo Clojure Reader e transformado em uma sequência (lista) para uso interno na função.

Exemplo de sintaxe:

(defn hello [greeting & who]
  (println greeting who))
 

No exemplo acima:

  • greeting: Captura o primeiro argumento obrigatório.
  • who: Captura todos os demais argumentos fornecidos e os agrupa em uma lista.

Ao invocar (hello "Hello" "world" "class"), o símbolo who será avaliado como a lista ("world" "class").

Referências