Из моих ограниченных знаний о Haskell кажется, что Карты (из Data.Map) должны использоваться так же, как словарь или хеш-таблица на других языках, и все же реализованы как самобалансирующиеся двоичные деревья поиска.
Почему это? Использование двоичного дерева уменьшает время поиска до O (log (n)) в отличие от O (1) и требует, чтобы элементы находились в Ord. Конечно, есть веская причина, так в чем преимущества использования двоичного дерева?
также:
В каких приложениях бинарное дерево будет намного хуже, чем хэш-таблица? А как насчет другого пути? Много ли случаев, когда было бы намного предпочтительнее другого? Есть ли традиционная хэш-таблица в Haskell?