0
respostas

Percorrer MAPAS usando map é seguro?

(def user1 { :id 1 :user {:dados {:nome "Richard Henrique dos Santos", :cpf "44647887855", :telefone "19993106226"} :endereco {:cidade "Descalvado", :rua "Coronel Manoel Leme", :numero "1208"} } })

(def user2 { :id 2 :user {:dados {:nome "Mariana Coradini de Oliveira", :cpf "44644669808", :telefone "19989801000"} :endereco {:cidade "Descalvado", :rua "Candido Rodriguês", :numero "12"} } })

(defn todos-usuarios [] [user1, user2])

//Meu intuito era chegar ao nome e o id

(defn retorna-nome [user] (map :nome (map :dados (map :user user))))

(defn exibe-info [dados] {:user-id (get dados 0) :user-nome (retorna-nome (get dados 1))})

(println (map exibe-info (group-by :id usuarios)))

Escrevi esse breve código, e tive como retorno o que eu esperava.

({:user-id 1, :user-nome (Richard Henrique dos Santos)} {:user-id 2, :user-nome (Mariana Coradini de Oliveira)})

porém a forma que usei o map na função retorna nome não sei se é seguro e legível e como poderia chegar de outra forma?