The cl-hamt Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-hamt Reference Manual

This is the cl-hamt Reference Manual, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:10:22 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

cl-hamt

Build Status

This library provides purely functional dictionaries and sets in Common Lisp based on the hash array-mapped trie data structure. The operations provided are:

size
lookup
insert
remove
reduce
filter
map
eq

The versions for sets and dictionaries are obtained by prepending set- or dict- to the above symbols, so for example to lookup a key in a set and dictionary you would call set-lookup and dict-lookup respectively. An empty collection is created with the functions empty-set and empty-dict.

See the examples/ directory for some usage examples of the library, or the unit tests. Some benchmark code can be found in tests/benchmarks.lisp.

Implementation

The data types in cl-hamt are implemented using the hash array-mapped trie (HAMT) data structure, as found in the Clojure language. HAMTs provide near-constant time search, insertion and removal and can be used as persistent data structures, i.e. all updates are non-destructive.

As the name suggests, hash array-mapped tries use hashing of the underlying data to store and retrieve it efficiently. Consequently, any natural ordering on the data, e.g. lexicographic ordering of strings, natural ordering of integers, is not preserved in a HAMT. When using reduce on a collection, the operation in question must not depend on the order in which the elements are accessed. If the data are ordered and this ordering is important, a self-balancing binary tree may be a more appropriate data structure. Additionally, one must provide an appropriate 32-bit hash function. We default to using murmurhash, as implemented in the Common Lisp package cl-murmurhash. Note that the built-in Common Lisp hash function sxhash is not a 32-bit hash; for example, on my 64-bit system with SBCL, it returns a 62-bit hash.

While most operations on HAMTs have a complexity of log base-32 in the size of the data structure, there is quite a bit of overhead. HAMTs are probably less efficient for repeated operations on small-size sets and dictionaries than, say, a list or an association list.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 cl-hamt

Author

Daniel Shapero <shapero.daniel@gmail.com>

License

BSD 3-clause

Description

Dictionary & set data structure using hash array-mapped tries

Dependency

cl-murmurhash

Source

cl-hamt.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 cl-hamt/src

Parent

cl-hamt (system)

Location

src/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 cl-hamt.asd

Location

cl-hamt.asd

Systems

cl-hamt (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 cl-hamt/src/package.lisp

Parent

src (module)

Location

src/package.lisp

Packages

cl-hamt


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 cl-hamt/src/util.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/util.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 cl-hamt/src/hamt.lisp

Dependency

util.lisp (file)

Parent

src (module)

Location

src/hamt.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 cl-hamt/src/hash-dict.lisp

Dependency

hamt.lisp (file)

Parent

src (module)

Location

src/hash-dict.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.6 cl-hamt/src/hash-set.lisp

Dependency

hash-dict.lisp (file)

Parent

src (module)

Location

src/hash-set.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 cl-hamt

Source

package.lisp (file)

Nickname

hamt

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Functions

Function: dict->alist DICT
Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-eq DICT1 DICT2 &key VALUE-TEST
Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-filter PREDICATE DICT

Return a new dict consisting of the key/value pairs satisfying the given predicate.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-insert DICT &rest ARGS

Return a new dictionary with the key/value pairs added. The key/value pairs are assumed to be alternating in the &rest argument, so to add the key/value pairs (k1, v1), ..., (kn, vn), one would invoke
(dict-insert dict k1 v1 ... kn vn).
If any of the keys are already present in the dict passed, they are mapped to the new values in the returned dict.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-lookup DICT KEY

Multiply-return the value mapped to by the key in the dictionary and whether or not the value is present in the dictionary.
The multiple return is necessary in case a key is present but maps to nil.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-map-keys FUNC DICT &key TEST HASH

Return a new dict with the keys mapped by the given function.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-map-values FUNC DICT &key TEST HASH

Return a new dict with the values mapped by the given function. Optionally use new comparison and hash functions for the mapped dict.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-reduce FUNC DICT INITIAL-VALUE

Successively apply a function to key/value pairs of the dict.
The function is assumed to have the signature
‘func :: A K V -> A‘,
where ‘A‘ is the type of the initial-value, ‘K‘ is the type of the dict keys and ‘V‘ is the type of dictionary values.
Note that HAMTs do not store items in any order, so the reduction operation cannot be sensitive to the order in which the items are reduced.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-reduce-keys FUNC DICT INITIAL-VALUE

Reducing over dictionary keys, ignoring the values.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-reduce-values FUNC DICT INITIAL-VALUE

Reducing over dictionary values, ignoring the keys.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-remove DICT &rest KEYS

Return a new dict with the keys removed. Any keys passed that are not already present in the dict are ignored.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: dict-size DICT

Return the number of key/value pairs in the dict

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: empty-dict &key TEST HASH

Return an empty hash-dict, in which keys will be compared and hashed with the supplied test and hash functions. The hash must be a 32-bit hash.

Package

cl-hamt

Source

hash-dict.lisp (file)

Function: empty-set &key TEST HASH

Return an empty hash-set, in which elements will be compared and hashed with the supplied test and hash functions. The hash must be a 32-bit hash.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set->list SET
Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-diff SET &rest ARGS
Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-eq SET1 SET2
Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-filter PREDICATE SET

Return the elements of the set satisfying a given predicate.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-insert SET &rest XS

Return a new set with the elements xs added to it. Elements already in the set are ignored.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-intersection SET &rest ARGS
Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-lookup SET X

Return true if the object x is in the set, false otherwise

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-map FUNC SET &key TEST HASH

Return the image of a set under a given function. Optionally use new comparison and hash functions for the mapped set.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-reduce FUNC SET INITIAL-VALUE

Successively apply a function to elements of the set. The function is assumed to have the signature
‘func :: A B -> A‘,
where A is the type of ‘initial-value‘ and ‘B‘ is the type of set elements. Note that HAMTs do not store items in any order, so the reduction operation cannot be sensitive to the order in which the items are reduced.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-remove SET &rest XS

Return a new set with the elements xs removed from it. If an item x in xs is not in the set, it is ignored.

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-size SET

Return the size of the set

Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-symmetric-diff SET1 SET2
Package

cl-hamt

Source

hash-set.lisp (file)

Function: set-union SET &rest ARGS
Package

cl-hamt

Source

hash-set.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Classes

Class: hash-dict ()
Package

cl-hamt

Source

hash-dict.lisp (file)

Direct superclasses

hamt (class)

Direct methods

hamt-table (method)

Direct slots
Slot: table
Initargs

:table

Initform

(make-instance (quote cl-hamt::dict-table) :bitmap 0 :table (make-array 0))

Readers

hamt-table (generic function)

Class: hash-set ()
Package

cl-hamt

Source

hash-set.lisp (file)

Direct superclasses

hamt (class)

Direct methods

hamt-table (method)

Direct slots
Slot: table
Initargs

:table

Initform

(make-instance (quote cl-hamt::set-table) :bitmap 0 :table (make-array 0))

Readers

hamt-table (generic function)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Macros

Macro: with-hamt HAMT (&key TEST HASH TABLE) &body BODY

Accessing HAMT slots

Package

cl-hamt

Source

hamt.lisp (file)

Macro: with-table NODE HASH DEPTH (BITMAP ARRAY BITS INDEX HIT) &body BODY

Bitshifting in HAMT tables

Package

cl-hamt

Source

hamt.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Functions

Function: alist-remove KEY ALIST TEST
Package

cl-hamt

Source

hash-dict.lisp (file)

Function: array-eq ARR1 ARR2 TEST
Package

cl-hamt

Source

hamt.lisp (file)

Function: dict-clone DICT TEST HASH
Package

cl-hamt

Source

hash-dict.lisp (file)

Function: get-bits HASH DEPTH

Extract bits 5*depth : 5*(depth+1) from the number hash.

Package

cl-hamt

Source

util.lisp (file)

Function: get-index BITS BITMAP

Given the 5-bit int extracted from a hash at the present depth, find the index in the current array corresponding to this bit sequence.

Package

cl-hamt

Source

util.lisp (file)

Function: vec-insert VEC POS ITEM
Package

cl-hamt

Source

util.lisp (file)

Function: vec-remove VEC POS
Package

cl-hamt

Source

util.lisp (file)

Function: vec-update VEC POS ITEM
Package

cl-hamt

Source

util.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Generic functions

Generic Function: %dict-insert NODE KEY VALUE HASH DEPTH TEST
Package

cl-hamt

Source

hash-dict.lisp (file)

Methods
Method: %dict-insert (NODE dict-table) KEY VALUE HASH DEPTH TEST
Method: %dict-insert (NODE dict-conflict) KEY VALUE HASH DEPTH TEST
Method: %dict-insert (NODE dict-leaf) KEY VALUE HASH DEPTH TEST
Generic Function: %hamt-lookup NODE KEY HASH DEPTH TEST
Package

cl-hamt

Source

hamt.lisp (file)

Methods
Method: %hamt-lookup (NODE set-conflict) KEY HASH DEPTH TEST
Source

hash-set.lisp (file)

Method: %hamt-lookup (NODE set-table) KEY HASH DEPTH TEST
Source

hash-set.lisp (file)

Method: %hamt-lookup (NODE set-leaf) KEY HASH DEPTH TEST
Source

hash-set.lisp (file)

Method: %hamt-lookup (NODE dict-conflict) KEY HASH DEPTH TEST
Source

hash-dict.lisp (file)

Method: %hamt-lookup (NODE dict-table) KEY HASH DEPTH TEST
Source

hash-dict.lisp (file)

Method: %hamt-lookup (NODE dict-leaf) KEY HASH DEPTH TEST
Source

hash-dict.lisp (file)

Generic Function: %hamt-reduce FUNC NODE INITIAL-VALUE
Package

cl-hamt

Methods
Method: %hamt-reduce FUNC (NODE set-conflict) INITIAL-VALUE
Source

hash-set.lisp (file)

Method: %hamt-reduce FUNC (NODE set-leaf) INITIAL-VALUE
Source

hash-set.lisp (file)

Method: %hamt-reduce FUNC (NODE dict-conflict) INITIAL-VALUE
Source

hash-dict.lisp (file)

Method: %hamt-reduce FUNC (NODE dict-leaf) INITIAL-VALUE
Source

hash-dict.lisp (file)

Method: %hamt-reduce FUNC (NODE table) INITIAL-VALUE
Source

hamt.lisp (file)

Method: %hamt-reduce FUNC NODE INITIAL-VALUE
Source

hamt.lisp (file)

Generic Function: %hamt-remove NODE KEY HASH DEPTH TEST
Package

cl-hamt

Source

hamt.lisp (file)

Methods
Method: %hamt-remove (NODE set-conflict) KEY HASH DEPTH TEST
Source

hash-set.lisp (file)

Method: %hamt-remove (NODE dict-conflict) KEY HASH DEPTH TEST
Source

hash-dict.lisp (file)

Method: %hamt-remove (NODE table) KEY HASH DEPTH TEST
Method: %hamt-remove (NODE leaf) KEY HASH DEPTH TEST
Generic Function: %hamt-size NODE
Package

cl-hamt

Source

hamt.lisp (file)

Methods
Method: %hamt-size (NODE conflict)
Method: %hamt-size (NODE table)
Method: %hamt-size (NODE leaf)
Generic Function: %hash-dict-eq DICT1 DICT2 KEY-TEST VALUE-TEST
Package

cl-hamt

Source

hash-dict.lisp (file)

Methods
Method: %hash-dict-eq (NODE1 dict-table) (NODE2 dict-table) KEY-TEST VALUE-TEST
Method: %hash-dict-eq (NODE1 dict-conflict) (NODE2 dict-conflict) KEY-TEST VALUE-TEST
Method: %hash-dict-eq (NODE1 dict-leaf) (NODE2 dict-leaf) KEY-TEST VALUE-TEST
Method: %hash-dict-eq DICT1 DICT2 KEY-TEST VALUE-TEST
Generic Function: %hash-set-eq SET1 SET2 TEST
Package

cl-hamt

Source

hash-set.lisp (file)

Methods
Method: %hash-set-eq (NODE1 set-table) (NODE2 set-table) TEST
Method: %hash-set-eq (NODE1 set-conflict) (NODE2 set-conflict) TEST
Method: %hash-set-eq (NODE1 set-leaf) (NODE2 set-leaf) TEST
Method: %hash-set-eq NODE1 NODE2 TEST
Generic Function: %set-insert NODE KEY HASH DEPTH TEST
Package

cl-hamt

Source

hash-set.lisp (file)

Methods
Method: %set-insert (NODE set-table) KEY HASH DEPTH TEST
Method: %set-insert (NODE set-conflict) KEY HASH DEPTH TEST
Method: %set-insert (NODE set-leaf) KEY HASH DEPTH TEST
Generic Function: conflict-entries OBJECT
Package

cl-hamt

Methods
Method: conflict-entries (CONFLICT conflict)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: conflict-hash OBJECT
Package

cl-hamt

Methods
Method: conflict-hash (CONFLICT conflict)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: hamt-hash OBJECT
Package

cl-hamt

Methods
Method: hamt-hash (HAMT hamt)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: hamt-table OBJECT
Package

cl-hamt

Methods
Method: hamt-table (HASH-SET hash-set)

automatically generated reader method

Source

hash-set.lisp (file)

Method: hamt-table (HASH-DICT hash-dict)

automatically generated reader method

Source

hash-dict.lisp (file)

Method: hamt-table (HAMT hamt)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: hamt-test OBJECT
Package

cl-hamt

Methods
Method: hamt-test (HAMT hamt)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: node-key OBJECT
Package

cl-hamt

Methods
Method: node-key (LEAF leaf)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: node-value OBJECT
Package

cl-hamt

Methods
Method: node-value (DICT-LEAF dict-leaf)

automatically generated reader method

Source

hash-dict.lisp (file)

Generic Function: table-array OBJECT
Package

cl-hamt

Methods
Method: table-array (TABLE table)

automatically generated reader method

Source

hamt.lisp (file)

Generic Function: table-bitmap OBJECT
Package

cl-hamt

Methods
Method: table-bitmap (TABLE table)

automatically generated reader method

Source

hamt.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Conditions

Condition: incompatible-tests-error ()
Package

cl-hamt

Source

hamt.lisp (file)

Direct superclasses

error (condition)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Classes

Class: conflict ()
Package

cl-hamt

Source

hamt.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: hash
Initargs

:hash

Readers

conflict-hash (generic function)

Slot: entries
Initargs

:entries

Initform

(quote nil)

Readers

conflict-entries (generic function)

Class: dict-conflict ()
Package

cl-hamt

Source

hash-dict.lisp (file)

Direct superclasses

conflict (class)

Direct methods
Class: dict-leaf ()
Package

cl-hamt

Source

hash-dict.lisp (file)

Direct superclasses

leaf (class)

Direct methods
Direct slots
Slot: value
Initargs

:value

Readers

node-value (generic function)

Class: dict-table ()
Package

cl-hamt

Source

hash-dict.lisp (file)

Direct superclasses

table (class)

Direct methods
Class: hamt ()
Package

cl-hamt

Source

hamt.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: test
Initargs

:test

Initform

(function equal)

Readers

hamt-test (generic function)

Slot: hash
Initargs

:hash

Initform

(function cl-murmurhash:murmurhash)

Readers

hamt-hash (generic function)

Slot: table
Initargs

:table

Readers

hamt-table (generic function)

Class: leaf ()
Package

cl-hamt

Source

hamt.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: key
Initargs

:key

Readers

node-key (generic function)

Class: set-conflict ()
Package

cl-hamt

Source

hash-set.lisp (file)

Direct superclasses

conflict (class)

Direct methods
Class: set-leaf ()
Package

cl-hamt

Source

hash-set.lisp (file)

Direct superclasses

leaf (class)

Direct methods
Class: set-table ()
Package

cl-hamt

Source

hash-set.lisp (file)

Direct superclasses

table (class)

Direct methods
Class: table ()
Package

cl-hamt

Source

hamt.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: bitmap
Type

(unsigned-byte 32)

Initargs

:bitmap

Initform

0

Readers

table-bitmap (generic function)

Slot: table
Initargs

:table

Initform

(make-array 0 :initial-element nil)

Readers

table-array (generic function)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   C   F   L   M  
Index Entry  Section

C
cl-hamt.asd: The cl-hamt<dot>asd file
cl-hamt/src: The cl-hamt/src module
cl-hamt/src/hamt.lisp: The cl-hamt/src/hamt<dot>lisp file
cl-hamt/src/hash-dict.lisp: The cl-hamt/src/hash-dict<dot>lisp file
cl-hamt/src/hash-set.lisp: The cl-hamt/src/hash-set<dot>lisp file
cl-hamt/src/package.lisp: The cl-hamt/src/package<dot>lisp file
cl-hamt/src/util.lisp: The cl-hamt/src/util<dot>lisp file

F
File, Lisp, cl-hamt.asd: The cl-hamt<dot>asd file
File, Lisp, cl-hamt/src/hamt.lisp: The cl-hamt/src/hamt<dot>lisp file
File, Lisp, cl-hamt/src/hash-dict.lisp: The cl-hamt/src/hash-dict<dot>lisp file
File, Lisp, cl-hamt/src/hash-set.lisp: The cl-hamt/src/hash-set<dot>lisp file
File, Lisp, cl-hamt/src/package.lisp: The cl-hamt/src/package<dot>lisp file
File, Lisp, cl-hamt/src/util.lisp: The cl-hamt/src/util<dot>lisp file

L
Lisp File, cl-hamt.asd: The cl-hamt<dot>asd file
Lisp File, cl-hamt/src/hamt.lisp: The cl-hamt/src/hamt<dot>lisp file
Lisp File, cl-hamt/src/hash-dict.lisp: The cl-hamt/src/hash-dict<dot>lisp file
Lisp File, cl-hamt/src/hash-set.lisp: The cl-hamt/src/hash-set<dot>lisp file
Lisp File, cl-hamt/src/package.lisp: The cl-hamt/src/package<dot>lisp file
Lisp File, cl-hamt/src/util.lisp: The cl-hamt/src/util<dot>lisp file

M
Module, cl-hamt/src: The cl-hamt/src module

Jump to:   C   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %  
A   C   D   E   F   G   H   M   N   S   T   V   W  
Index Entry  Section

%
%dict-insert: Internal generic functions
%dict-insert: Internal generic functions
%dict-insert: Internal generic functions
%dict-insert: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-lookup: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-reduce: Internal generic functions
%hamt-remove: Internal generic functions
%hamt-remove: Internal generic functions
%hamt-remove: Internal generic functions
%hamt-remove: Internal generic functions
%hamt-remove: Internal generic functions
%hamt-size: Internal generic functions
%hamt-size: Internal generic functions
%hamt-size: Internal generic functions
%hamt-size: Internal generic functions
%hash-dict-eq: Internal generic functions
%hash-dict-eq: Internal generic functions
%hash-dict-eq: Internal generic functions
%hash-dict-eq: Internal generic functions
%hash-dict-eq: Internal generic functions
%hash-set-eq: Internal generic functions
%hash-set-eq: Internal generic functions
%hash-set-eq: Internal generic functions
%hash-set-eq: Internal generic functions
%hash-set-eq: Internal generic functions
%set-insert: Internal generic functions
%set-insert: Internal generic functions
%set-insert: Internal generic functions
%set-insert: Internal generic functions

A
alist-remove: Internal functions
array-eq: Internal functions

C
conflict-entries: Internal generic functions
conflict-entries: Internal generic functions
conflict-hash: Internal generic functions
conflict-hash: Internal generic functions

D
dict->alist: Exported functions
dict-clone: Internal functions
dict-eq: Exported functions
dict-filter: Exported functions
dict-insert: Exported functions
dict-lookup: Exported functions
dict-map-keys: Exported functions
dict-map-values: Exported functions
dict-reduce: Exported functions
dict-reduce-keys: Exported functions
dict-reduce-values: Exported functions
dict-remove: Exported functions
dict-size: Exported functions

E
empty-dict: Exported functions
empty-set: Exported functions

F
Function, alist-remove: Internal functions
Function, array-eq: Internal functions
Function, dict->alist: Exported functions
Function, dict-clone: Internal functions
Function, dict-eq: Exported functions
Function, dict-filter: Exported functions
Function, dict-insert: Exported functions
Function, dict-lookup: Exported functions
Function, dict-map-keys: Exported functions
Function, dict-map-values: Exported functions
Function, dict-reduce: Exported functions
Function, dict-reduce-keys: Exported functions
Function, dict-reduce-values: Exported functions
Function, dict-remove: Exported functions
Function, dict-size: Exported functions
Function, empty-dict: Exported functions
Function, empty-set: Exported functions
Function, get-bits: Internal functions
Function, get-index: Internal functions
Function, set->list: Exported functions
Function, set-diff: Exported functions
Function, set-eq: Exported functions
Function, set-filter: Exported functions
Function, set-insert: Exported functions
Function, set-intersection: Exported functions
Function, set-lookup: Exported functions
Function, set-map: Exported functions
Function, set-reduce: Exported functions
Function, set-remove: Exported functions
Function, set-size: Exported functions
Function, set-symmetric-diff: Exported functions
Function, set-union: Exported functions
Function, vec-insert: Internal functions
Function, vec-remove: Internal functions
Function, vec-update: Internal functions

G
Generic Function, %dict-insert: Internal generic functions
Generic Function, %hamt-lookup: Internal generic functions
Generic Function, %hamt-reduce: Internal generic functions
Generic Function, %hamt-remove: Internal generic functions
Generic Function, %hamt-size: Internal generic functions
Generic Function, %hash-dict-eq: Internal generic functions
Generic Function, %hash-set-eq: Internal generic functions
Generic Function, %set-insert: Internal generic functions
Generic Function, conflict-entries: Internal generic functions
Generic Function, conflict-hash: Internal generic functions
Generic Function, hamt-hash: Internal generic functions
Generic Function, hamt-table: Internal generic functions
Generic Function, hamt-test: Internal generic functions
Generic Function, node-key: Internal generic functions
Generic Function, node-value: Internal generic functions
Generic Function, table-array: Internal generic functions
Generic Function, table-bitmap: Internal generic functions
get-bits: Internal functions
get-index: Internal functions

H
hamt-hash: Internal generic functions
hamt-hash: Internal generic functions
hamt-table: Internal generic functions
hamt-table: Internal generic functions
hamt-table: Internal generic functions
hamt-table: Internal generic functions
hamt-test: Internal generic functions
hamt-test: Internal generic functions

M
Macro, with-hamt: Internal macros
Macro, with-table: Internal macros
Method, %dict-insert: Internal generic functions
Method, %dict-insert: Internal generic functions
Method, %dict-insert: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-lookup: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-reduce: Internal generic functions
Method, %hamt-remove: Internal generic functions
Method, %hamt-remove: Internal generic functions
Method, %hamt-remove: Internal generic functions
Method, %hamt-remove: Internal generic functions
Method, %hamt-size: Internal generic functions
Method, %hamt-size: Internal generic functions
Method, %hamt-size: Internal generic functions
Method, %hash-dict-eq: Internal generic functions
Method, %hash-dict-eq: Internal generic functions
Method, %hash-dict-eq: Internal generic functions
Method, %hash-dict-eq: Internal generic functions
Method, %hash-set-eq: Internal generic functions
Method, %hash-set-eq: Internal generic functions
Method, %hash-set-eq: Internal generic functions
Method, %hash-set-eq: Internal generic functions
Method, %set-insert: Internal generic functions
Method, %set-insert: Internal generic functions
Method, %set-insert: Internal generic functions
Method, conflict-entries: Internal generic functions
Method, conflict-hash: Internal generic functions
Method, hamt-hash: Internal generic functions
Method, hamt-table: Internal generic functions
Method, hamt-table: Internal generic functions
Method, hamt-table: Internal generic functions
Method, hamt-test: Internal generic functions
Method, node-key: Internal generic functions
Method, node-value: Internal generic functions
Method, table-array: Internal generic functions
Method, table-bitmap: Internal generic functions

N
node-key: Internal generic functions
node-key: Internal generic functions
node-value: Internal generic functions
node-value: Internal generic functions

S
set->list: Exported functions
set-diff: Exported functions
set-eq: Exported functions
set-filter: Exported functions
set-insert: Exported functions
set-intersection: Exported functions
set-lookup: Exported functions
set-map: Exported functions
set-reduce: Exported functions
set-remove: Exported functions
set-size: Exported functions
set-symmetric-diff: Exported functions
set-union: Exported functions

T
table-array: Internal generic functions
table-array: Internal generic functions
table-bitmap: Internal generic functions
table-bitmap: Internal generic functions

V
vec-insert: Internal functions
vec-remove: Internal functions
vec-update: Internal functions

W
with-hamt: Internal macros
with-table: Internal macros

Jump to:   %  
A   C   D   E   F   G   H   M   N   S   T   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   B   E   H   K   S   T   V  
Index Entry  Section

B
bitmap: Internal classes

E
entries: Internal classes

H
hash: Internal classes
hash: Internal classes

K
key: Internal classes

S
Slot, bitmap: Internal classes
Slot, entries: Internal classes
Slot, hash: Internal classes
Slot, hash: Internal classes
Slot, key: Internal classes
Slot, table: Exported classes
Slot, table: Exported classes
Slot, table: Internal classes
Slot, table: Internal classes
Slot, test: Internal classes
Slot, value: Internal classes

T
table: Exported classes
table: Exported classes
table: Internal classes
table: Internal classes
test: Internal classes

V
value: Internal classes

Jump to:   B   E   H   K   S   T   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   H   I   L   P   S   T  
Index Entry  Section

C
cl-hamt: The cl-hamt system
cl-hamt: The cl-hamt package
Class, conflict: Internal classes
Class, dict-conflict: Internal classes
Class, dict-leaf: Internal classes
Class, dict-table: Internal classes
Class, hamt: Internal classes
Class, hash-dict: Exported classes
Class, hash-set: Exported classes
Class, leaf: Internal classes
Class, set-conflict: Internal classes
Class, set-leaf: Internal classes
Class, set-table: Internal classes
Class, table: Internal classes
Condition, incompatible-tests-error: Internal conditions
conflict: Internal classes

D
dict-conflict: Internal classes
dict-leaf: Internal classes
dict-table: Internal classes

H
hamt: Internal classes
hash-dict: Exported classes
hash-set: Exported classes

I
incompatible-tests-error: Internal conditions

L
leaf: Internal classes

P
Package, cl-hamt: The cl-hamt package

S
set-conflict: Internal classes
set-leaf: Internal classes
set-table: Internal classes
System, cl-hamt: The cl-hamt system

T
table: Internal classes

Jump to:   C   D   H   I   L   P   S   T