q4c12-twofinger: Efficient alternating finger trees

[ bsd2, data-structures, library ] [ Propose Tags ]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 0,,, 0.1, 0.2
Dependencies base (>= && <4.11), bifunctors (>=5.4.2 && <5.5), deepseq (>= && <1.5), QuickCheck (>=2.10.1 && <2.11), semigroupoids (>=5.2.1 && <5.3), streams (>=3.3 && <3.4) [details]
License BSD-2-Clause
Author quasicomputational <quasicomputational@gmail.com>
Maintainer quasicomputational <quasicomputational@gmail.com>
Category Data Structures
Home page https://github.com/quasicomputational/mega/tree/master/packages/twofinger
Bug tracker https://github.com/quasicomputational/mega/issues
Source repo head: git clone https://github.com/quasicomputational/mega
Uploaded by quasicomputational at 2017-12-08T21:00:22Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 2943 total (12 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-12-08 [all 1 reports]

Readme for q4c12-twofinger-0

[back to package description]

This package provides efficient alternating sequences based on finger trees. These can represent sequences made up of two types of element, e and a where two of the same type of element cannot follow each other directly.

Four different flavours are provided, isomorphic to ([(a, e)], a), ([(e, a)], e), [(a, e)], and [(e, a)].

Cons-like operations are O(1) amortised, and append operations are O(log(min(n, m))) amortised.

For more details, please see the Haddock documentation of Q4C12.TwoFinger.