league/difference-list/1.1.0

NOTE: this package is not compatible with Elm 0.19.1

difference-list

Build Status

An Elm-language representation of lists with an efficient append operation.

This is particularly useful for efficient logging and pretty printing, where repeatedly appending lists quickly becomes too expensive. Internally, DList is a function that prepends elements to its parameter. Thus the append operation is just function composition. Ultimately, a DList is converted to a regular List by applying the function to the empty list.

Some limitations of the DList representation are:

  • We cannot ask for the length of a DList without converting it to a regular list.

  • We cannot test equality on two DList structures without converting them to regular lists.