1997
DOI: 10.1017/s0956796897002864
|View full text |Cite
|
Sign up to set email alerts
|

The Zipper

Abstract: Almost every programmer has faced the problem of representing a tree together with a subtree that is the focus of attention, where that focus may move left, right, up or down the tree. The Zipper is Huet's nifty name for a nifty data structure which fulfills this need. I wish I had known of it when I faced this task, because the solution I came up with was not quite so efficient or elegant as the Zipper.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
123
0
1

Year Published

2002
2002
2013
2013

Publication Types

Select...
8

Relationship

1
7

Authors

Journals

citations
Cited by 230 publications
(124 citation statements)
references
References 2 publications
0
123
0
1
Order By: Relevance
“…As an example of a library of generic operations we consider the generic zipper [24] (section 6), which is a useful generic tool when implementing functional programs which use the notion of a position in a data structure. As observed by McBride [29], the zipper is closely related to the notion of the derivative of a datatype, which has many structural similarities to derivatives in calculus.…”
Section: Structure Of the Papermentioning
confidence: 99%
“…As an example of a library of generic operations we consider the generic zipper [24] (section 6), which is a useful generic tool when implementing functional programs which use the notion of a position in a data structure. As observed by McBride [29], the zipper is closely related to the notion of the derivative of a datatype, which has many structural similarities to derivatives in calculus.…”
Section: Structure Of the Papermentioning
confidence: 99%
“…?Q =⇒?P (?y); ¬?Q =⇒?P (?z) =⇒ ?P (if ?Q then ?y else ?z) (12) As before, this results in two new sub-goals. Typically, the skeleton embeds into only one of them, in which case that goal is called the rippling goal.…”
Section: If-statementsmentioning
confidence: 84%
“…Zippers, as introduced by Huet [12], were motivated by the common problem of needing to represent a tree with a subtree that is the focus of attention. The focus of attention can then be moved left, right, up or down the tree.…”
Section: Applying Case Splits: Restricted Unification In Resolutionmentioning
confidence: 99%
“…Thus extend not only defines what it means for a local (comonadic) operation to be applied globally, but also which contexts are accessible from each possible context. A tree comonad that has a structural notion of context but whose comonadic operations can access any part of the tree can be defined using Huet's zipper data type, where trees are split into a path to the current position and the remaining parts of the tree [9,5]. For a certain class of data types it has been shown that a zipper structure can be automatically derived by differentiation of the data type [10].…”
Section: Introducing Codomentioning
confidence: 99%