Есть ли функционал n:1 bimap?

У меня есть карта, где несколько ключей могут отображаться на одно и то же значение. Я хотел бы сделать обратный поиск, чтобы при заданном значении я получил список всех ключей, которые соответствуют этому значению. Обратите внимание, что в отличие от Data.Bimap моя карта не 1:1, а n: 1.

Кроме того, обратный поиск не должен принимать O(n), как для выполнения всех записей карты, а, скорее, O(log n) или, что лучше, с обратным индексом. Карта будет содержать много десятков тысяч записей с большой загрузкой операций добавления / удаления / поиска.

Доступна ли такая структура данных в функциональной форме (предпочтительнее Хаскелл или Фреге)?

0 ответов

Другие вопросы по тегам