Jak uzyskać mapę tablicową clojure, aby utrzymać kolejność wstawiania po asoku?

mamarray-map kim jestemassocdo niej pewne wartości. Po pewnym rozmiarze zwracana wartość to aPersistentHashMap raczej niż oryginałPersistentArrayMap. Czytałem o tym zachowaniu na kilku stronach internetowych. Czy jest jakiś sposób, aby wymusić kolejność wstawiania nawet poassoc?

Mam osobną funkcję, która zajmieash-map i wektor kluczy i zwróć „świeże”array-map z kluczami w tej kolejności, ale oznacza to, że dla każdego asocjacji muszę najpierw wyodrębnić klucze, dodać nowy klucz do wektora, a następnie utworzyć nową mapę tablicy. Wydaje się, że kludgey, nawet jeśli jest napisany w oddzielnej funkcji.

Czy istnieje bardziej bezpośredni, obsługiwany językowo sposób utrzymywania kolejności wstawiania nawet na dużych mapach tablicy (> 10, ale <50)?

W przypadku, gdy jest to istotne, używam listy map tablicowych jako danych do zestawu danych inkantatora, a następnie wyprowadzam do programu Excel. Funkcja save-xls zachowuje kolejność klawiszy / kolumn.

Dzięki

questionAnswers(1)

yourAnswerToTheQuestion