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.

Referências


https://clojure.org/guides/learn/sequential_colls#_vectors