Skip to content

Instantly share code, notes, and snippets.

@viniciusss
Created April 22, 2020 13:20
Show Gist options
  • Save viniciusss/ca319d4edb8c3a9321cd5d229cf54243 to your computer and use it in GitHub Desktop.
Save viniciusss/ca319d4edb8c3a9321cd5d229cf54243 to your computer and use it in GitHub Desktop.
(ns curso-alura.aula6)
(def pedido {
:mochila {
:quantidade 2
:preco 100
},
:camiseta {
:quantidade 3
:preco 50
}
})
(defn imprime-e-15 [valor]
(println "valor" (class valor) valor)
15)
(println (map imprime-e-15 pedido))
(defn imprime-e-15 [[chave valor]]
(println chave "e" valor)
valor)
(println (map imprime-e-15 pedido))
(defn preco-por-produto [[_ valor]]
(* (:quantidade valor) (:preco valor)))
(println (map preco-por-produto pedido))
(println)
(defn total-do-pedido
[pedido]
(reduce + (map preco-por-produto pedido)))
; THREAD LAST
(defn total-do-pedido
[pedido]
(->> pedido
(map preco-por-produto)
(reduce +)))
(println (total-do-pedido pedido))
(defn preco-total-do-produto [produto]
(* (:quantidade produto) (:preco produto)))
(defn total-do-pedido
[pedido]
(->> pedido
vals
(map preco-total-do-produto)
(reduce +)))
(println (total-do-pedido pedido))
(println "\n\n\n\n\n\n")
(def pedido {
:mochila { :quantidade 2 :preco 100},
:camiseta { :quantidade 3 :preco 50 },
:chaveiro {:quantidade 1}})
(defn gratuito?
[[_ item]]
(<= (get item :preco 0) 0))
(println (filter gratuito? pedido))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment