На вопрос "что Map.add
делает внутренне" вы можете ответить самостоятельно, взглянув на реализацию .
Как правило, F # Map
- это постоянная структура данных , основанная на самобалансирующемся дереве поиска.Общая идея использования такой структуры заключается в том, что при обновлении необходимо переписать только часть структуры - и эта часть фактически создается с нуля, тогда как поддеревья, которые не меняются, распределяются между «старым» и «старым».обновленные "версии структуры.
Сложность операций поиска и добавления составляет O (log n), средний регистр (как и следовало ожидать от базовой структуры дерева).