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