Clojure Reader


Em linguagens tradicionais (como Java ou C), o compilador lê o texto e tenta entender a estrutura gramatical da linguagem de uma vez só. No Clojure, o processo é dividido.

O Reader é o componente que lê o texto bruto (fluxo de caracteres) e o transforma em estruturas de dados nativas da linguagem (listas, vetores, mapas, símbolos).

Imagine que você tem o seguinte código Clojure:

(+ 1 2)

  1. Entrada (Caracteres): O Reader vê os caracteres (, +, , 1, , 2, ).
  2. Processamento: Ele reconhece os parênteses como o início e fim de uma lista, o + como um símbolo e os números como inteiros.
  3. Saída (Estrutura de Dados): O Reader entrega ao compilador uma PersistentList contendo o símbolo + e os números 1 e 2.

Para o Clojure, antes de ser “código”, o que você escreveu é apenas uma lista de dados (característico de homoiconicidade do Clojure).

Referências


https://clojure.org/guides/learn/syntax#_evaluation