Created
May 14, 2021 01:03
-
-
Save BrunoBog/fd2b372b09e7694e3c0f7996bfeae7b0 to your computer and use it in GitHub Desktop.
Closure maps
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (ns loja.nuzitcho) | |
| (def purchases [{:date "2020-12-01" :value 10.7 :place "lojaumDoJaum" :category "bugigangas"} | |
| {:date "2021-01-05" :value 101.7 :place "RestorantDoJaquin" :category "Tomperro"} | |
| {:date "2021-01-05" :value 100.7 :place "RestorantDoJaquin" :category "Tomperro"} | |
| {:date "2021-03-15" :value 81.2 :place "SupermarketDoJézaum" :category "Comida"} | |
| {:date "2021-03-16" :value 21 :place "LoRistorant" :category "Comida"} | |
| {:date "2021-03-16" :value 11.7 :place "Marmitex" :category "Comida"} | |
| {:date "2021-03-17" :value 11.6 :place "Supermarket" :category "Comida"}]) | |
| (def card {:number 87632527683 :cvv 666 :valid "06/29" :limit 15000 :moviments purchases}) | |
| (def client {:nome "Tuei" :cpf "111111111111" :email "clientaum@boladão.com" :card card}) | |
| (println "valor dos gastos agrupados por uma categoria:" (group-by :category purchases)) | |
| (defn summary | |
| [[category value]] | |
| {:category category | |
| :total (reduce + (map :value value))}) | |
| (defn search-place | |
| [[category value]]) | |
| (->> purchases | |
| (group-by :category) | |
| (map summary) | |
| (println "Valor dos gastos agrupados por categoria")) | |
| (defn spended-in-place | |
| [place spends] | |
| (filter #(= place (% :place)) spends) | |
| ) | |
| (->> purchases | |
| (spended-in-place "Marmitex") | |
| (println "Busca de compras pelo estabelecimento : ")) | |
| (defn spend-with-value | |
| [value spends] | |
| (filter #(= value (% :value)) spends)) | |
| (->> purchases | |
| (spend-with-value 100.7) | |
| (println "Busca de compras pelo valor : ")) | |
| (defn filter-spends-by-date | |
| [month year spend] | |
| (filter | |
| #(let [x (% :date)] | |
| (and | |
| (> (compare x (str year "-" month "-01")) 0) | |
| (< (compare x (str year "-" month "-31")) 0))) | |
| spend)) | |
| (defn sumarize-spends | |
| [spends] | |
| (reduce + (map :value spends)) | |
| ) | |
| (->> purchases | |
| (filter-spends-by-date "01" "2021") | |
| (sumarize-spends) | |
| (println "Fatura do mês : ") | |
| ) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment