Ответ 1
Олег работает над "параллельными" молниями через разграниченные продолжения является основной ссылкой.
Структура данных Zipper великолепна, когда вы хотите пересечь дерево и сохранить текущую позицию, но какую структуру данных следует использовать, если они хотят отслеживать более одной позиции?
Позвольте мне объяснить с примерами:
Существует тривиальное (наивное?) решение, подобное тому, которое они использовали в ранних версиях XMonad, которое включает в себя конечные карты, как описано здесь.
То есть, например, в случае моего проекта-примера я бы сохранил выбранные узлы в индексированной карте и заменил их представление в основной структуре индексами. Но это решение имеет множество недостатков. Как и те, которые описаны в приведенной выше ссылке, или, скажем, снова в случае моего примера, отбраковка всех узлов потребует поиска всего дерева.
Олег работает над "параллельными" молниями через разграниченные продолжения является основной ссылкой.
См. этот документ. Кажется, я кое-что помню, что вторая производная имеет две дыры, которая, вероятно, вы хотите.