Zipper (data structure) (original) (raw)

Property Value
dbo:abstract A zipper is a technique of representing an aggregate data structure so that it is convenient for writing programs that traverse the structure arbitrarily and update its contents, especially in purely functional programming languages. The zipper was described by Gérard Huet in 1997. It includes and generalizes the gap buffer technique sometimes used with arrays. The zipper technique is general in the sense that it can be adapted to lists, trees, and other recursively defined data structures.Such modified data structures are usually referred to as "a tree with zipper" or "a list with zipper" to emphasize that the structure is conceptually a tree or list, while the zipper is a detail of the implementation. A layperson's explanation for a tree with zipper would be an ordinary computer filesystem with operations to go to parent (often cd ..), and the possibility to go downwards (cd subdirectory). The zipper is the pointer to the current path. Behind the scenes the zippers are efficient when making (functional) changes to a data structure, where a new, slightly changed, data structure is returned from an edit operation (instead of making a change in the current data structure). (en)
dbo:wikiPageExternalLink http://donsbot.wordpress.com/2007/05/17/roll-your-own-window-manager-tracking-focus-with-a-zipper/7 http://sigfpe.blogspot.com/2006/09/infinitesimal-types.html https://www.cs.tufts.edu/~nr/pubs/zipcfg-abstract.html http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf%7Ctitle=Functional http://en.wikibooks.org/wiki/Haskell/Zippers https://xlinux.nist.gov/dads/HTML/zipper.html http://www.haskell.org/haskellwiki/Zipper
dbo:wikiPageID 7872003 (xsd:integer)
dbo:wikiPageLength 12357 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1076482056 (xsd:integer)
dbo:wikiPageWikiLink dbr:Calculus dbr:Boolean_data_type dbr:Derivative dbr:Intuitionistic_type_theory dbr:Inversion_of_control dbr:Power_rule dbr:Generic_programming dbr:Clojure dbc:Functional_data_structures dbr:Function_type dbr:Sum_rule_in_differentiation dbr:Sum_type dbc:Functional_programming dbr:Tree_(data_structure) dbr:Data_structure dbr:Gap_buffer dbr:Least_fixed_point dbr:Focus_(computing) dbr:Journal_of_Functional_Programming dbr:Gérard_Huet dbr:Haskell_(programming_language) dbr:State_machine dbr:Automated_theorem_prover dbr:Window_(computing) dbr:Recursive_data_type dbr:Xmonad dbr:Sentinel_node dbr:Object_copying dbr:Product_type dbr:Filesystem dbr:List_(computing) dbr:Derivative_(generalizations) dbr:Purely_functional_programming_language dbr:Decategorification dbr:Structural_editor dbr:Constructor_operation dbr:Observer_operation
dbp:wikiPageUsesTemplate dbt:Cite_journal dbt:Math dbt:Mvar dbt:Reflist dbt:Use_dmy_dates dbt:Val dbt:Wikibooks
dct:subject dbc:Functional_data_structures dbc:Functional_programming
gold:hypernym dbr:Technique
rdf:type dbo:TopicalConcept yago:Abstraction100002137 yago:Arrangement105726596 yago:Cognition100023271 yago:DataStructure105728493 yago:PsychologicalFeature100023100 yago:Structure105726345 yago:WikicatDataStructures
rdfs:comment A zipper is a technique of representing an aggregate data structure so that it is convenient for writing programs that traverse the structure arbitrarily and update its contents, especially in purely functional programming languages. The zipper was described by Gérard Huet in 1997. It includes and generalizes the gap buffer technique sometimes used with arrays. (en)
rdfs:label Zipper (data structure) (en)
owl:sameAs freebase:Zipper (data structure) yago-res:Zipper (data structure) wikidata:Zipper (data structure) dbpedia-sr:Zipper (data structure) dbpedia-th:Zipper (data structure) https://global.dbpedia.org/id/4qN6W
prov:wasDerivedFrom wikipedia-en:Zipper_(data_structure)?oldid=1076482056&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Zipper_(data_structure)
is dbo:wikiPageDisambiguates of dbr:Zipper_(disambiguation)
is dbo:wikiPageRedirects of dbr:Zipper_data_structure dbr:Zipper_(datastructure) dbr:Zipper_datastructure
is dbo:wikiPageWikiLink of dbr:List_of_data_structures dbr:Generalizations_of_the_derivative dbr:Monad_(functional_programming) dbr:Gap_buffer dbr:Purely_functional_data_structure dbr:Zipper_(disambiguation) dbr:Zipper_data_structure dbr:Splay_tree dbr:Xmonad dbr:List_of_terms_relating_to_algorithms_and_data_structures dbr:Finger_tree dbr:Zipper_(datastructure) dbr:Zipper_datastructure
is foaf:primaryTopic of wikipedia-en:Zipper_(data_structure)