Containers doc

Containers

Change Log

See this file

License

This code is free, under the BSD license.

The logo (media/logo.png) is CC-SA3 wikimedia

Contents

The design is mostly centered around polymorphism rather than functors. Such structures comprise (some modules in misc/, some other in core/):

the core library, containers, now depends on cppo and base-bytes (provided by ocamlfind).

Core Modules (extension of the standard library)


CCArray
Array utils
CCBool
Basic Bool functions
CCChar
Utils around char
CCError
Error Monad
CCFloat
Basic Float functions
CCFun
Basic Functions
CCFormat
Helpers for Format
CCHash
Hash combinators
CCHashtbl
Extension to the standard Hashtbl
CCHeap
Leftist Heaps following Okasaki
CCInt
Basic Int functions
CCInt64
Int64
CCIO
IO Utils
CCList
complements to list
CCMap
Extensions of Standard Map
CCOpt
Options
CCOrd
Comparisons
CCPair
Tuple Functions
CCPrint
Printer Combinators
CCRandom
Random Generators
CCRef
References
CCResult
Error Monad
CCSet
Wrapper around Set
CCString
Basic String Utils
CCVector
Growable, mutable vector
Containers
Drop-In replacement to Stdlib

The module Containers contains aliases to most other modules defined in containers core, and mixins such as:

 module List = struct
    include List
    include CCList
  end

Containers.data

Various data structures.


CCAllocCache
Simple Cache for Allocations
CCBitField
Bit Field
CCBloom
Bloom Filter
CCBV
Imperative Bitvectors
CCCache
Caches
CCDeque
Imperative deque
CCFQueue
Functional queues
CCFlatHashtbl
Open-Addressing Hash-table
CCGraph
Simple Graph Interface
CCHashSet
Mutable Set
CCHashTrie
Hash Tries
CCImmutArray
Immutable Arrays
CCIntMap
Map specialized for Int keys
CCMixmap
Maps with Heterogeneous Values
CCMixset
Set of Heterogeneous Values
CCMixtbl
Hash Table with Heterogeneous Keys
CCMultiMap
Multimap
CCMultiSet
Multiset
CCPersistentArray
Persistent Arrays
CCPersistentHashtbl
Persistent hash-table on top of OCaml's hashtables
CCRAL
Random-Access Lists
CCRingBuffer
Circular Buffer (Deque)
CCTrie
Prefix Tree
CCWBTree
Weight-Balanced Tree

Containers.io

deprecated use CCIO directly from the set of core modules.

Containers.unix

Helpers that depend on Unix, e.g. to spawn sub-processes.


CCUnix
High-level Functions on top of Unix

Containers.sexp

A small S-expression library. The interface is relatively unstable, but the main type (CCSexp.t) isn't.


CCSexp
Handling S-expressions
CCSexpM
Simple and efficient S-expression parsing/printing

Containers.iter

Iterators:


CCKList
Continuation List
CCKTree
Lazy Tree Structure This structure can be used to represent trees and directed graphs (as infinite trees) in a lazy fashion.
CCLazy_list
Lazy List

String


CCApp_parse
Applicative Parser Combinators
CCKMP
Knuth-Morris-Pratt
CCLevenshtein
Levenshtein distance
CCParse
Very Simple Parser Combinators

Bigarrays

deprecated (use package bigstring instead) Use bigarrays to hold large strings and map files directly into memory.


CCBigstring
Interface to 1-dimension Bigarrays of bytes (char)
CCArray1
Bigarrays of dimension 1

Advanced

This module is qualified with Containers_advanced. It requires Sequence.


CCLinq
LINQ-like operations on collections
CCCat
Categorical Constructs
CCBatch
Batch Operations on Collections Define and combine operations on a collection of elements, then run the composition of those operations on some collection.

Misc

Moved to its own repository.

Lwt

Moved to its own repository

Others


CCBlockingQueue
Blocking Queue
CCLock
Utils around Mutex
CCPool
Thread Pool, and Futures
CCSemaphore
Semaphores
CCThread
Threads
CCTimer
Event timer

Index