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