mapv, partial, doseq e dotimes
🗺️ Utilizar mapv para forçar execução de uma função
Seção intitulada “🗺️ Utilizar mapv para forçar execução de uma função”Diferente de map, que é lazy, mapv executa imediatamente e retorna um vetor com os resultados:
(mapv println ["Olá" "Clojure" "!"]);; => "Olá" "Clojure" "!"Muito útil quando a função tem efeitos colaterais e você quer garantir que ela seja chamada.
🧼 Aumentar legibilidade extraindo responsabilidades
Seção intitulada “🧼 Aumentar legibilidade extraindo responsabilidades”Funções pequenas e com responsabilidade única facilitam leitura e manutenção:
(defn calcular-imposto [valor taxa] (* valor taxa))
(defn calcular-total [valor taxa] (+ valor (calcular-imposto valor taxa)))🔧 Chamada parcial com partial
Seção intitulada “🔧 Chamada parcial com partial”partial cria uma nova função preenchendo parcialmente os argumentos:
(def soma10 (partial + 10))(soma10 5);; => 15Muito útil para pré-configurar funções.
🔁 Iterar com doseq
Seção intitulada “🔁 Iterar com doseq”doseq executa efeitos colaterais em cada elemento da sequência:
(doseq [nome ["Ana" "João" "Lia"]] (println "Olá," nome))🔂 Repetição com dotimes
Seção intitulada “🔂 Repetição com dotimes”Executa algo um número fixo de vezes:
(dotimes [i 3] (println "Executando" i))Ideal para loops simples baseados em contagem.
Clojure oferece diversas ferramentas para trabalhar com filas, controle de fluxo e concorrência de forma segura e expressiva. Evitar símbolos globais mutáveis e usar atom e swap! são práticas essenciais para garantir consistência e segurança em ambientes concorrentes.
Ferramentas como mapv, partial, doseq e dotimes ajudam a escrever código mais legível, funcional e conciso.