Entidades aninhadas
Em problemas reais é comum que entidades de domínio contenham outras entidades em níveis mais profundos.
Para acessar campos em múltiplos níveis, utiliza-se a função get-in, que recebe um vetor de chaves representando o caminho.
Para modificar ou atualizar dados aninhados sem perder a imutabilidade, utilizam-se as funções assoc-in ou update-in.
Exemplo de acesso aninhado:
(def company {:name "WidgetCo" :address {:city "Springfield"}})
(get-in company [:address :city]) ; => "Springfield"Referências
https://clojure.org/guides/learn/hashed_colls#_nested_entities