Skip to content

Instantly share code, notes, and snippets.

@humbertodosreis
Created January 21, 2020 10:38
Show Gist options
  • Save humbertodosreis/b425038b4988817354afbd123423ed0c to your computer and use it in GitHub Desktop.
Save humbertodosreis/b425038b4988817354afbd123423ed0c to your computer and use it in GitHub Desktop.
(ns clojure-playground.core)
(def transacoes [{:valor 33.0 :descricao "Almoco" :tipo "despesa"}
{:valor 40.0 :descricao "Farmacia" :tipo "despesa"}
{:valor 1000.0 :descricao "Salario" :tipo "receita"}])
(map #(:valor %) transacoes)
(filter #(= (:tipo %)) transacoes)
(first transacoes)
(get (first transacoes) :valor)
(:valor (first transacoes))
(->> (first transacoes)
:valor)
(get-in transacoes [0 :valor])
(:valor (first transacoes) 45.5)
(update {:valor 1} :valor + 10)
(assoc (first transacoes) :valor 10) ;; substituindo valor
(def despesas? #(= (:tipo %)))
(def apena-valor #(:valor %))
(->> (filter despesas? transacoes)
(map apena-valor)
(reduce +))
(def clientes [{:nome "Humberto" :cpf "31211133399" :genero "M" :vip false}
{:nome "Fernanda" :cpf "25900000012" :genero "F" :vip true}])
(def formato-padrao #(str "Nome:" (:nome %) ", CPF:" (:cpf %) ", Genero:" (:genero %)))
(def formato-cpf-mascarado #(str "Nome:" (:nome %) ", CPF:***********" ", Genero:" (:genero %)))
(->> (filter #(true? (:vip %)) clientes)
(map formato-padrao))
(->> (filter #(true? (:vip %)) clientes)
(map formato-cpf-mascarado))
;;(map #(str "Nome:" (:nome %) ", CPF:" "***********" ", Genero:" (:genero %)) clientes)
(defn relatorio [clientes formatador]
(map formatador clientes))
(relatorio clientes formato-padrao)
(relatorio clientes formato-cpf-mascarado)
(defn relatorio-2
([clientes] (relatorio-2 clientes formato-padrao))
([clientes formatador] (map formatador clientes)))
(relatorio-2 clientes)
(relatorio-2 clientes formato-cpf-mascarado)
;; usei thread first, pois relatorio recebe clientes primeiro
(-> (filter #(true? (:vip %)))
relatorio-2 formato-cpf-mascarado)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment