Como obter um mapa de array clojure para manter a ordem de inserção após assoc?

eu tenho umarray-map que eu souassocalguns 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

questionAnswers(1)

yourAnswerToTheQuestion