# Blog articles/Data

### From HaskellWiki

< Blog articles(Difference between revisions)

DonStewart (Talk | contribs) (→Mutable data) |
(→Further reading: Added a link to Markov Networks, Monoids, and Futurama) |
||

(17 intermediate revisions by 2 users not shown) | |||

Line 3: | Line 3: | ||

== Data structures == | == Data structures == | ||

− | + | === Trees === | |

+ | |||

* [http://scienceblogs.com/goodmath/2006/12/a_tree_grows_up_in_haskell_bui_1.php A Tree Grows Up in Haskell: Building a Dictionary Type] | * [http://scienceblogs.com/goodmath/2006/12/a_tree_grows_up_in_haskell_bui_1.php A Tree Grows Up in Haskell: Building a Dictionary Type] | ||

− | * [http:// | + | * [http://notvincenz.blogspot.com/2007/07/flatten-benchmark.html Flattening trees] |

− | + | ||

* [http://www.randomhacks.net/articles/2007/02/10/map-fusion-and-haskell-performance Map fusion: Making Haskell 225% faster] | * [http://www.randomhacks.net/articles/2007/02/10/map-fusion-and-haskell-performance Map fusion: Making Haskell 225% faster] | ||

+ | |||

+ | === Stacks === | ||

+ | |||

+ | * [http://progexpr.blogspot.com/2006/11/haskell-stacks-two-different-ways.html Haskell Stacks : Two Different Ways] | ||

+ | |||

+ | === Queues === | ||

+ | |||

+ | * [http://www.randomhacks.net/articles/2007/02/08/haskell-queues-without-pointers Queues without pointers] | ||

+ | |||

+ | === Zipper === | ||

* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper Roll Your Own Window Manager: Tracking Focus with a Zipper] | * [http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper Roll Your Own Window Manager: Tracking Focus with a Zipper] | ||

+ | * [http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WalkZip1/ From walking to zipping, Part 1: Moving right] | ||

+ | * [http://conway.rutgers.edu/~ccshan/wiki/blog/posts/WalkZip2/ From walking to zipping, Part 2: Down and up] | ||

+ | * [http://www.haskell.org/haskellwiki/Zipper The Zipper] | ||

+ | |||

+ | ===Lists=== | ||

+ | |||

+ | * [http://wadler.blogspot.com/2007/12/arithmetic-for-lists.html Arithmetic for lists] | ||

+ | * [http://www.kennknowles.com/blog/2008/04/16/drawing-fractals-in-haskell-with-a-cursor-graphics-dsel-and-a-cute-list-representation/ Drawing fractals in Haskell with a cursor graphics DSEL and a cute list representation] (reproduces [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/dlist difference lists] from old primary sources) | ||

===Strings=== | ===Strings=== | ||

Line 17: | Line 35: | ||

* [http://neilbartlett.name/blog/2007/04/11/haskell-an-imperative-language-with-mutable-state/ Haskell: an Imperative Language with Mutable State] | * [http://neilbartlett.name/blog/2007/04/11/haskell-an-imperative-language-with-mutable-state/ Haskell: an Imperative Language with Mutable State] | ||

+ | * [http://jputnam.livejournal.com/42065.html Haskell and inplace QuickSort] | ||

+ | |||

+ | ===Compression and serialisation === | ||

+ | |||

+ | * [[Serialisation and compression with Data_Binary]] | ||

=== Generics === | === Generics === | ||

* [http://neilmitchell.blogspot.com/2007/06/boilerplate-considered-harmful-uniplate.html Boilerplate considered harmful (Uniplate edition!)] | * [http://neilmitchell.blogspot.com/2007/06/boilerplate-considered-harmful-uniplate.html Boilerplate considered harmful (Uniplate edition!)] | ||

+ | |||

+ | === Miscelleanous === | ||

+ | * [http://syntaxfree.wordpress.com/2007/02/11/finally-some-hacking-of-my-own-a-counter-datatype/ A counter datatype with constant-time update] | ||

+ | |||

+ | === Further reading === | ||

+ | |||

+ | * [http://haskell.org/haskellwiki/Research_papers/Data_structures Research papers on data structures in Haskell] | ||

+ | |||

+ | == Control structures == | ||

+ | |||

+ | See also the subsections for [[Blog_articles/Monads#Monads|monads]] and [[Blog_articles/Monads#Comonads|comonads]]. | ||

+ | |||

+ | === Codata === | ||

+ | |||

+ | * [http://sigfpe.blogspot.com/2007/07/data-and-codata.html Data and Co-Data] | ||

+ | |||

+ | === Continuations === | ||

+ | |||

+ | * [http://therning.org/magnus/archives/306 Continuing with continuations] | ||

+ | |||

+ | === Delimited continuations === | ||

+ | |||

+ | * [http://blog.moertel.com/articles/2005/09/13/scope-herding-with-delimited-continuations Scope herding with delimited continuations] | ||

+ | |||

+ | == Further reading == | ||

+ | * [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Data%20Structures Data structures on Hackage] | ||

+ | * [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Data More data structures on Hackage] | ||

+ | * [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Generics Generics on Hackage] | ||

+ | * [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:Control Control structures on Hackage] | ||

+ | * [http://izbicki.me/blog/markov-networks-monoids-and-futurama Markov Networks, Monoids, and Futurama] |

## Latest revision as of 11:16, 16 May 2013

## Contents |

## [edit] 1 Data structures

### [edit] 1.1 Trees

- A Tree Grows Up in Haskell: Building a Dictionary Type
- Flattening trees
- Map fusion: Making Haskell 225% faster

### [edit] 1.2 Stacks

### [edit] 1.3 Queues

### [edit] 1.4 Zipper

- Roll Your Own Window Manager: Tracking Focus with a Zipper
- From walking to zipping, Part 1: Moving right
- From walking to zipping, Part 2: Down and up
- The Zipper

### [edit] 1.5 Lists

- Arithmetic for lists
- Drawing fractals in Haskell with a cursor graphics DSEL and a cute list representation (reproduces difference lists from old primary sources)

### [edit] 1.6 Strings

### [edit] 1.7 Mutable data

### [edit] 1.8 Compression and serialisation

### [edit] 1.9 Generics

### [edit] 1.10 Miscelleanous

### [edit] 1.11 Further reading

## [edit] 2 Control structures

See also the subsections for monads and comonads.