Jak uzyskać mapę tablicową clojure, aby utrzymać kolejność wstawiania po asoku?
mamarray-map
kim jestemassoc
do 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