r
Size: a a a
r
Д
[
AP
AP
[
[
[
AP
[
[
AP
[
AP
AP
[
AP
data Zipper a = Zipper { lefts :: [a], cursor: a, rights :: [a] }
left (Zipper ls c (r:rs)) = Just $ Zipper (c:ls) r rs
left _ = Nothing
right (Zipper (l:ls) c rs) = Just $ Zipper ls l (c:rs)
right _ = Nothing
Идея такая примерно. Это такой курсор для структуры данных, который можно перемещать по структуре, получая прямой доступ к нужному месту.Д
AP