Копируется ли вся Карта при вставке новой привязки?

Я хотел бы лучше понять стажеров, например. Данные.Карта. Когда я вставляю новую привязку в карту, то из-за неизменности данных я получаю новую структуру данных, которая идентична старой структуре данных, плюс новая привязка.

Я хотел бы понять, как это достигается. Компилятор в конечном итоге реализует это, скопировав всю структуру данных, например. миллионы привязок? Можно ли вообще сказать, что изменяемые структуры/массивы данных (например, Data.Judy) или императивные языки программирования работают лучше в таких случаях? Имеют ли неизменяемые данные какие-либо преимущества, когда дело доходит до словарей/хранилищ ключей и значений?

18
задан Rotsor 5 April 2012 в 11:21
поделиться