Описание тега zipper

Застежка-молния - это метод представления структуры данных, который удобен для обхода и обновления, особенно в чистых функциональных языках.

Молния представляет собой метод, представляющие собой совокупную структуру данных, так что удобно для написания программ, которые пересекают структуру произвольно и обновлять его содержание, особенно в чисто функциональных языках программирования.

Основная идея состоит в том, что существующая структура данных в виде списка или дерева дополняется представлением "фокуса" на отдельном элементе в дереве таким образом, чтобы обеспечить эффективный поиск и обновление в точке фокуса.

Простым примером является застежка-молния для списка, состоящего из пары двух списков. Например, позиция 3 в списке (1,2,3,4,5) представлена ​​парой ((2,1),(3,4,5)). Вставить новый элемент или заменить 3 другим элементом с таким представлением можно за постоянное время, поскольку 3 находится в начале второго списка пары. Перемещаться по списку так же просто: удалить заголовок любого списка иcons это с другим списком.

Вы можете узнать больше о застежке-молнии в Haskell в Haskell Wikibook.