Como obter um mapa de array clojure para manter a ordem de inserção após assoc?
eu tenho umarray-map
que eu souassoc
alguns valores nele. Depois de um certo tamanho, o valor retornado é umPersistentHashMap
em vez do originalPersistentArrayMap
. Eu li sobre esse comportamento em alguns sites. Existe alguma maneira de forçar o pedido de veiculação mesmo depoisassoc
?
Eu tenho uma função separada que vai demorar umash-map
e um vetor de chaves, e retornar um "novo"array-map
com chaves nesta ordem, mas isso significa que para cada assoc, eu tenho que extrair as chaves primeiro, cons / conj a nova chave para o vetor, então crie um novo mapa de array. Parece ruim, mesmo se escrito em uma função separada.
Existe uma maneira mais direta suportada por idioma de manter a ordem de inserção mesmo em array-map de chaves grandes-ish (> 10, mas <50)?
Caso seja relevante, estou usando uma lista de mapas de matriz como dados em um conjunto de dados incanter e, em seguida, enviando para o excel. A função save-xls mantém a ordem das chaves / colunas.
obrigado