Как получить карту массива clojure -для сохранения порядка вставки после assoc?

У меня есть array-map, в который я assocввожу некоторые значения. После определенного размера возвращаемое значение представляет собой PersistentHashMap, а не исходное PersistentArrayMap. Я читал об этом поведении на нескольких веб-сайтах. Есть ли способ заставить порядок вставки даже после assoc?

У меня есть отдельная функция, которая принимает ash-mapи вектор ключей и возвращает «свежий» array-mapс ключами в этом порядке, но это означает, что для каждого помощника я должен сначала извлечь ключи, cons/conj новый ключ к вектору, затем создайте новую карту массива -. Кажется неуклюжим, даже если написано в отдельной функции.

Существует ли более прямой язык, поддерживаемый -, способ сохранения порядка вставки даже на большой -ish (> 10, но < 50 )массив ключей -карта?

Если это уместно, я использую список карт массива -в качестве данных в наборе данных incanter, а затем вывожу в Excel. Функция сохранения -xls сохраняет порядок клавиш/столбцов.

Спасибо

6
задан Sonicsmooth 20 August 2012 в 08:04
поделиться