Skip to content

X Persistent Collections

John McClean edited this page Jul 26, 2018 · 3 revisions

Persistent Collections

The cyclops.data package contains a range of persistent (immutable shared memory) collections.

Lists

Core Lists

Interface ImmutableList

  1. Seq - a persistent linked list
  2. NonEmptyList - a persistent linked list with a least one value
  3. LazySeq - a lazy persistent linked list (like Stream in Scala or Vavr)
  4. IntMap - a persistent 'arraylist' type list backed by a PatriciaTrie
  5. Vector - a persistent 'arraylist' type list backed by a bit mapped array trie
  6. DifferenceList - A List with an efficient append operation

Special Lists / List Like Data Structures or Sequences

  1. LazyString
  2. HList - Heterogenous List
  3. Zipper - focus and update a point within a List
  4. Enumeration - a walkable generic sequence

Sets

Core Sets

Interface ImmutableSet

  1. HashSet
  2. TrieSet
  3. Bag

SortedSets Sets

Interface ImmutableSortedSet

  1. TreeSet

Queues

Core Queues

Interface ImmutableQueue

  1. BankersQueue

Maps

Core Maps

Interface ImmutableMap

  1. HashMap
  2. LinkedMap
  3. TreeMap
  4. DMap

Other Collection-like Data Structures

  1. Range - represents an unconstrained generic (T) range of values
  2. Enumeration - represents an unconstrained reversible path through a generic (T) sequence of values
  3. DIET - Discrete Interval Encoded Tree
Clone this wiki locally