FSharpx.Collections


FSharpx.Collections.Experimental Namespace

Type/Module Description

AltBinaryRandomAccessList

AltBinRndAccList<'T>

BankersDeque

BankersDeque<'T>

BankersQueue

BankersQueue<'T>

BatchedDeque

BatchedDeque<'T>

BatchedQueue

BatchedQueue<'T>

BinaryRandomAccessList

BinaryRandomAccessList<'T>

BinaryRoseTree

BinaryRoseTree<'T>

Multi-way tree, also known as rose tree. This RoseTree uses a Vector for the children RoseTree forest. Adapted from @mausch F# adaptation of Experimental.RoseTree.

BinaryTree<'T>

A simple binary tree

BinaryTreeZipper

TreeZipper original implementation taken from http://blog.xquant.net/?p=156

BinaryTreeZipper<'T>

The zipper data structure for binary trees

BinomialHeap

BinomialHeap<'T>

BinomialTree<'T>

BKTree

BKTree<'T>

BlockResizeArray

BlockResizeArray<'T>

Resize array fith fixed size block memory allocation. Provide more optimal space usage for huge arrays than standard ResizeArray. Basic version created by Avdyukhin Dmitry (dimonbv@gmail.com) As evidenced by the tests that cannot run in mono, and pending destabilizing tests, beware that this data structure can be destabilizing to your assembly.

BootstrappedQueue

bootstrapped queue from Chris Okasaki's "Purely functional data structures" original implementation taken from http://lepensemoi.free.fr/index.php/2010/02/18/bootstrapped-queue

BootstrappedQueue<'T>

BottomUpMergeSort

ChampHashMap

ChampHashMap<'TKey, 'TValue>

Deque

Deque<'T>

Digit<'T>

DList

DList<'T>

The DList is an implementation of John Hughes' append list. See http://dl.acm.org/citation.cfm?id=8475 for more information. This implementation adds an additional parameter to allow a more efficient calculation of the list length. Note that an alternate form would represent the DList as: type DList<'T> = DList of ('T list -> 'T list) An example can be found at http://stackoverflow.com/questions/5324623/functional-o1-append-and-on-iteration-from-first-element-list-data-structure/5327209#5327209

EagerRoseTree

EagerRoseTree<'T>

Multi-way tree, also known as rose tree. This RoseTree uses a List for the children RoseTree forest. Adapted from @mausch F# adaptation of Experimental.RoseTree.

FlatList

FlatList<'T>

HeapPriorityQueue

HoodMelvilleQueue

HoodMelvilleQueue<'T>

ImplicitQueue

implicit queue from Chris Okasaki's "Purely functional data structures" original implementation taken from http://lepensemoi.free.fr/index.php/2010/02/18/implicit-queue

ImplicitQueue<'T>

IncompatibleMerge

IndexedRoseTree

IndexedRoseTree<'T>

Multi-way tree, also known as rose tree. This RoseTree uses a Vector for the children RoseTree forest. Adapted from @mausch F# adaptation of Experimental.RoseTree.

IntMap

IntMap<'T>

KeyValuePair<'TKey, 'TValue>

LeftistHeap

LeftistHeap<'T>

ListZipper

ListZipper<'T>

A zipper for lists

NonEmptyBootstrappedQueue<'T>

PairingHeap

PairingHeap<'T>

PairingHeap performs extremely well in practice, however (according to Okasaki) it should be avoided for applications taking advantage of persistence. Also according to Okasaki the time complexity of the heap functions in the PairingHeap implementation have "resisted" time complexity analysis. ofSeq: superior performance; insert: superior performance; tail: superior performance

PatternMatchedBug

PhysicistQueue

PhysicistQueue<'T>

RealTimeDeque

RealTimeDeque<'T>

RealTimeQueue

RealTime queue from Chris Okasaki's "Purely functional data structures" original implementation taken from http://lepensemoi.free.fr/index.php/2010/01/07/real-time-queue

RealTimeQueue<'T>

RingBuffer

RingBuffer<'T>

RoseTree (Module)

RoseTree (Type)

RoseTree<'T>

Multi-way tree, also known as rose tree.

RotationState<'T>

SkewBinaryRandomAccessList

SkewBinaryRandomAccessList<'T>

SkewBinomialHeap

'T SkewBinomialHeap

A SkewBinomialHeap is a priority queue where elements are inserted in any order, using "insert" and are extracted in either ascending or descending order using "head", "peek", "tail", "pop" or any of their "try" variants. The main advantage of the SkewBinomialHeap over the BinomialHeap is that it supports insertions in constant time O(1). (Based on "Purely Functional Data Structures" - 1996 by Chris Okasaki)

Timeseries<'T>

TreeBRAL<'T>

TreeBRALDigit<'T>

TreeDirection

TreeSBRAL<'T>