Listas como pilhas em Clojure


Devido à sua natureza de crescimento no topo/frente, as listas em Clojure podem ser utilizadas eficientemente como estruturas de Pilha (Stack).

Operações de Pilha

As operações de pilha em Clojure permitem interagir com o “topo” da lista de forma performática.

  • Peek: A função peek retorna o elemento que está no topo da pilha (o primeiro da lista) sem removê-lo.

  • Pop: A função pop retorna uma nova lista sem o elemento do topo.

  • Conj: Para adicionar elementos ao topo da pilha, utiliza-se a função conj, que em listas insere sempre na frente (topo).

(def pilha '(:a :b :c))
 
(peek pilha)
;; => :a
 
(pop pilha)
;; => (:b :c)
 
(conj pilha :d)
;; => (:d :a :b :c)
 

Referências


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