Operações de listas em Clojure
Diferente dos vetores, as listas não são indexadas, o que exige métodos específicos de busca linear.
Acesso via first e rest
Como não possuem índices, as listas devem ser percorridas utilizando as funções first e rest.
first: Retorna o primeiro item da lista (a cabeça).rest: Retorna uma nova lista contendo todos os elementos, exceto o primeiro (a cauda).
(def cards '(10 :ace :jack 9))
;; Acessando o primeiro elemento
(first cards)
;; => 10
;; Obtendo o restante da lista
(rest cards)
;; => (:ace :jack 9)
Unir
No caso das listas, a função conj adiciona elementos sempre na frente (head).
(def lista-inicial '(:a :b))
(conj lista-inicial :c)
;; => (:c :a :b)
(conj '(:a :b) :c :d)
;; => (:d :c :a :b)