В Racket начал ковыряться не так давно. Сейчас обкатывается такая задачка:
Есть входной поток данных - пары «ключ-значение» (общий объём произвольный). Пары раскидываются по определённым критериям в несколько ассоциативных списков. Потом всё это парсится и по определённым правилам формируется...эммм...ну скажем так: «таблица решений». Пока эта таблица решений реализована тоже, как ассоциативный список. Можно было бы, как hash table (да, я знаю, что для hash О(1), а для alist О(n)), но что в этом случае нельзя будет применять функции обработки обычных списков (насколько я понял из доков). С другой стороны, итоговая таблица решений может «распухнуть» (размер пока трудно предсказать), и тогда скорость обработки становится критичной.
Недавно в ньюсах обсуждали релиз Racket 5.2. Там упоминалось обилие новых и вкусных (хотя и нестандартных) плюшек. В связи с этим - вопрос:
Есть ли в Racket 5.2 новые средства обработки структур данных (а может быть и новые структуры данных), повышающие эффективность? Да и вообще - поругайте как следует описанное выше решение (желательна конструктивная жёсткая критика).
Разумеется, я буду продолжать шерстить документацию, но вдруг найдутся опытные «рэкетисты», которые уже глубоко закопались или делали нечто подобное. В общем, если не влом, то подскажите и покритикуйте. Главное, чтобы по делу.