Тренд в сторону реактивных пользовательских интерфейсов, параллельной обработки и надежной кодовой базы усиливает интерес к неизменяемости (immutability). Неизменяемый означает: данные не изменяются напрямую. Вместо этого при каждом изменении создается новая версия структуры данных. Неизмененные части при этом внутренне используются повторно, а заново создаются только те области, которые действительно были изменены.
Библиотека Immutable.js, разработанная Facebook, привносит такие структуры в Javascript. Она использует специальные структуры данных, чтобы при создании новых версий повторно использовать большие части структуры. Благодаря этому потребление памяти остается умеренным, а копии можно создавать за постоянное время. Строго говоря, операции над хэш-массив-отображенными префиксными деревьями (HAMT) обычно имеют сложность O(log n) с очень маленьким коэффициентом, ограниченным глубиной дерева, что означает почти постоянные затраты.
Вы уже подписаны?
Войти
Дополнительная информация о Golem Plus