Skip to content

Instantly share code, notes, and snippets.

@annezao
Created September 21, 2022 20:44
Show Gist options
  • Save annezao/2b4d2c84e782a592813572a10920c5bf to your computer and use it in GitHub Desktop.
Save annezao/2b4d2c84e782a592813572a10920c5bf to your computer and use it in GitHub Desktop.
destructing
(ns aula3.exercicio
(:require [aula3.data :as data]))
;; escrever uma funcao que retorna a primeira compra do cliente dado o ID.
(defn retorna-primeira-compra
[id mapa]
(let [{compras :compras} mapa]
(first (get compras id))))
;; escrever uma funcao que retorna as compras de um cliente dado o ID.
(defn retorna-compras-por-id
[id mapa]
(let [{compras :compras} mapa]
(get compras id)))
;; escrever uma funcao que adiciona a compra {:item "mesa" :valor 250} no vetor de compras de um cliente, dado o ID.
;; Deve retornar o mapa inteiro.
(defn adiciona-nova-compra-por-id
[id mapa nova-compra]
(let [{compras :compras} mapa
items (get compras id)]
(conj items nova-compra)))
;; escrever uma funcao que da desconto de 10% para o primeiro item de compra do cliente dado o ID.
;; Deve retornar o mapa inteiro
(defn aplica-desconto-primeira-compra
[id mapa]
(let [{compras :compras} mapa
items (get compras id)
primeiro-item (first items)]
(get compras id)))
(comment
(retorna-primeira-compra "1" data/mapa)
(retorna-compras-por-id "1" data/mapa)
(adiciona-nova-compra-por-id "1" data/mapa {:item "mesa" :valor 250})
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment