dlist: Difference lists

[ bsd3, data, library ] [ Propose Tags ]

Difference lists are a list-like type supporting O(1) append. This is particularly useful for efficient logging and pretty printing (e.g. with the Writer monad), where list append quickly becomes too expensive.


[Skip to Readme]
Versions [faq] 0.2, 0.3, 0.3.1, 0.3.2, 0.4, 0.4.1, 0.5, 0.6, 0.6.0.1, 0.7, 0.7.0.1, 0.7.1, 0.7.1.1, 0.7.1.2, 0.8, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.0.4, 0.8.0.5, 0.8.0.6, 0.8.0.7, 0.8.0.8, 1.0
Change log ChangeLog.md
Dependencies base (==4.*), deepseq (>=1.1 && <1.5) [details]
License BSD-3-Clause
Copyright 2006-2009 Don Stewart, 2013-2019 Sean Leather
Author Don Stewart
Maintainer Sean Leather <sean.leather@gmail.com>
Category Data
Home page https://github.com/spl/dlist
Bug tracker https://github.com/spl/dlist/issues
Source repo head: git clone git://github.com/spl/dlist.git
Uploaded by SeanLeather at 2020-04-02T03:40:10Z
Distributions Arch:0.8.0.8, Debian:0.8.0.4, Fedora:0.8.0.7, FreeBSD:0.7.1.1, LTSHaskell:0.8.0.6, NixOS:0.8.0.8, Stackage:0.8.0.6, openSUSE:0.8.0.7
Downloads 369438 total (2839 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2020-04-02 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for dlist-0.8.0.8

[back to package description]

Difference Lists in Haskell

Hackage Hackage dependencies Travis CI

Summary

The Haskell dlist package defines a list-like type supporting O(1) append and snoc operations.

See ChangeLog.md for recent changes.

References

Research

  1. A novel representation of lists and its application to the function “reverse.” John Hughes. Information Processing Letters. Volume 22, Issue 3. 1986-03. Pages 141-144. [PDF]

    This is the original source for a representation of lists as first-class functions.

Basic Introduction

  1. Difference list. Wikipedia.

  2. Difference list. Haskell.org Wiki.

  3. What is a DList? Stack Overflow.

Blogs and Discussion

  1. Using Difference Lists. Douglas M. Auclair. 2008-08-13.

  2. A Sort of Difference. Edward Kmett. 2008-09-18.

  3. Reference for technique wanted. Richard O'Keefe, et al. 2010-10-31.

  4. 24 Days of Hackage: dlist. Oliver Charles. 2012-12-14.

  5. Constructing a list in a Monad. Joachim Breitner. 2013-11-13.

  6. Demystifying DList. (On Reddit). Tom Ellis. 2014-01-24.

  7. keepEquals with Difference Lists. Douglas M. Auclair. 2014-06-21.

Books

  1. Chapter 13. Data Structures. Real World Haskell. 2008-12-05.