Operações de vetores em Clojure
Criação
Além do uso de literais [ ], vetores podem ser gerados através da função vector.
;; Usando literal
[10 20 30]
;; => [10 20 30]
;; Usando a função vector
(vector "a" "b" "c")
;; => ["a" "b" "c"]
Acesso
A função get recupera um elemento por seu índice, que se inicia em . Caso o índice seja tal que , o retorno será nil.
(get ["primeiro" "segundo"] 0)
;; => "primeiro"
(get [10 20] 5)
;; => nil
Contagem
A função count é utilizada para retornar o número total de elementos presentes na coleção.
(count [1 2 3 4 5])
;; => 5
Unir
A função conj (conjoin ou “unir” na tradução para português) é usada para adicionar elementos. Nos vetores, os novos elementos são sempre inseridos no final da estrutura.
(conj [1 2 3] 4)
;; => [1 2 3 4]
(conj [1] 2 3 4)
;; => [1 2 3 4]
NOTE
A imutabilidade é uma propriedade central que garante a integridade dos dados originais em Clojure.
Quando uma função como
conjé utilizada, ela não altera o vetor existente, mas retorna uma nova instância contendo o novo elemento.