Skip to content

Instantly share code, notes, and snippets.

@adamgomespinto
Last active September 28, 2022 21:16
Show Gist options
  • Save adamgomespinto/7fd872011cfbf807b8661b8581ef82e3 to your computer and use it in GitHub Desktop.
Save adamgomespinto/7fd872011cfbf807b8661b8581ef82e3 to your computer and use it in GitHub Desktop.
(ns exercicios.exercicio
(:require [exercicios.data :as data]))
(defn altera-endereco-novo
[endereco-antigo endereco-novo]
(merge endereco-antigo endereco-novo))
(defn atualizar-endereco-cliente
[cliente endereco-novo]
(update cliente :endereco altera-endereco-novo endereco-novo))
(defn atualizar-endereco
"Deve atualizar o endereco de um cliente e retorna o vetor de clientes.
A funcao deve atualizar o endereco apenas com os valores presentes no mapa do novo endereco."
[clientes id-cliente novo-endereco]
(map (fn [cliente] (if (= id-cliente (:id cliente))
(atualizar-endereco-cliente cliente novo-endereco)
cliente)) clientes))
(defn- creditar-conta
"adiciona valor ao saldo da conta"
[conta valor]
(assoc conta :saldo (+ valor (:saldo conta))))
(defn- debitar-conta
"remove valor do saldo da conta"
[conta valor]
(assoc conta :saldo (- valor (:saldo conta))))
(defn atualizar-conta
"funcao que atualiza conta a partir de uma funcao f. Deve retornar o mapa de contas"
[contas f id-conta valor]
(map (fn [conta] (if (= id-conta (first conta))
{(first conta) (f (last conta) valor)}
conta)) contas))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment