The cl-digraph Reference Manual

This is the cl-digraph Reference Manual, version 1.4.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 15:08:43 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-digraph

Simple directed graphs for Common Lisp.

Author

Steve Losh <>

Home Page

http://docs.stevelosh.com/cl-digraph/

License

MIT/X11

Version

1.4.0

Source

cl-digraph.asd.

Child Components

3 Modules

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


3.1 cl-digraph/vendor

Source

cl-digraph.asd.

Parent Component

cl-digraph (system).

Child Components

3.2 cl-digraph/src

Dependency

package.lisp (file).

Source

cl-digraph.asd.

Parent Component

cl-digraph (system).

Child Component

directed-graph.lisp (file).


4 Files

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


4.1 Lisp


4.1.1 cl-digraph/cl-digraph.asd

Source

cl-digraph.asd.

Parent Component

cl-digraph (system).

ASDF Systems

cl-digraph.


4.1.2 cl-digraph/vendor/quickutils-package.lisp

Source

cl-digraph.asd.

Parent Component

vendor (module).

Packages

digraph.quickutils.

Internals

*utilities* (special variable).


4.1.3 cl-digraph/vendor/quickutils.lisp

Dependency

quickutils-package.lisp (file).

Source

cl-digraph.asd.

Parent Component

vendor (module).

Public Interface
Internals

4.1.4 cl-digraph/package.lisp

Dependency

vendor (module).

Source

cl-digraph.asd.

Parent Component

cl-digraph (system).

Packages

digraph.


4.1.5 cl-digraph/src/directed-graph.lisp

Source

cl-digraph.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 digraph.quickutils

Package that contains Quickutil utility functions.

Source

quickutils-package.lisp.

Use List

common-lisp.

Used By List

digraph.

Public Interface
Internals

5.2 digraph

Source

package.lisp.

Use List
Public Interface
Internals

6 Definitions

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


6.1 Public Interface


6.1.1 Macros

Macro: appendf (place &rest lists)

Modify-macro for ‘append‘. Appends ‘lists‘ to the place designated by the first argument.

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: dohash ((key value table &optional result) &body body)

Iterate over the hash table ‘table‘, executing ‘body‘, with ‘key‘ and ‘value‘ bound to the keys and values of the hash table respectively. Return ‘result‘ from the iteration form.

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: ensure-gethash (key hash-table &optional default)

Like ‘gethash‘, but if ‘key‘ is not found in the ‘hash-table‘ saves the ‘default‘ under key before returning it. Secondary return value is true if key was already in the table.

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: once-only (specs &body forms)

Evaluates ‘forms‘ with symbols specified in ‘specs‘ rebound to temporary variables, ensuring that each initform is evaluated only once.

Each of ‘specs‘ must either be a symbol naming the variable to be rebound, or of the form:

(symbol initform)

Bare symbols in ‘specs‘ are equivalent to

(symbol symbol)

Example:

(defmacro cons1 (x) (once-only (x) ‘(cons ,x ,x)))
(let ((y 0)) (cons1 (incf y))) => (1 . 1)

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: removef (place item &rest remove-keywords)

Modify-macro for ‘remove‘. Sets place designated by the first argument to the result of calling ‘remove‘ with ‘item‘, place, and the ‘keyword-arguments‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: with-gensyms (names &body forms)

Binds each variable named by a symbol in ‘names‘ to a unique symbol around ‘forms‘. Each of ‘names‘ must either be either a symbol, or of the form:

(symbol string-designator)

Bare symbols appearing in ‘names‘ are equivalent to:

(symbol symbol)

The string-designator is used as the argument to ‘gensym‘ when constructing the unique symbol the named variable will be bound to.

Package

digraph.quickutils.

Source

quickutils.lisp.

Macro: with-unique-names (names &body forms)

Binds each variable named by a symbol in ‘names‘ to a unique symbol around ‘forms‘. Each of ‘names‘ must either be either a symbol, or of the form:

(symbol string-designator)

Bare symbols appearing in ‘names‘ are equivalent to:

(symbol symbol)

The string-designator is used as the argument to ‘gensym‘ when constructing the unique symbol the named variable will be bound to.

Package

digraph.quickutils.

Source

quickutils.lisp.


6.1.2 Compiler macros

Compiler Macro: compose (function &rest more-functions)
Package

digraph.quickutils.

Source

quickutils.lisp.

Compiler Macro: curry (function &rest arguments)
Package

digraph.quickutils.

Source

quickutils.lisp.


6.1.3 Ordinary functions

Function: arbitrary-vertex (digraph)

Return an arbitrary vertex of ‘digraph‘ and ‘t‘.

If the digraph is empty, ‘(values nil nil)‘ will be returned instead.

Package

digraph.

Source

directed-graph.lisp.

Function: build-from-leafs (leafs predecessor-function &key test hash-function)

Build a fresh ‘digraph‘ starting from ‘leafs‘ using ‘predecessor-function‘.

This is a convenience function to build a digraph object if you have some leafs and a function that can find their parents.

‘leafs‘ must be a list.

‘predecessor-function‘ must be a function that takes a vertex and returns a list of its predecessors.

Package

digraph.

Source

directed-graph.lisp.

Function: build-from-roots (roots successor-function &key test hash-function)

Build a fresh ‘digraph‘ starting from ‘roots‘ using ‘successor-function‘.

This is a convenience function to build a digraph object if you have some roots and a function that can find their children.

‘roots‘ must be a list.

‘successor-function‘ must be a function that takes a vertex and returns a list of its successors.

Package

digraph.

Source

directed-graph.lisp.

Function: compose (function &rest more-functions)

Returns a function composed of ‘function‘ and ‘more-functions‘ that applies its ; arguments to to each in turn, starting from the rightmost of ‘more-functions‘, and then calling the next one with the primary value of the last.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: contains-edge-p (digraph predecessor successor)

Return whether the graph contains an edge from ‘predecessor‘ to ‘successor‘.

Package

digraph.

Source

directed-graph.lisp.

Function: contains-vertex-p (digraph vertex)

Return whether the graph contains ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: copy-digraph (digraph)

Create a fresh copy of ‘digraph‘.

The vertex objects themselves are not copied, but everything else is.

Package

digraph.

Source

directed-graph.lisp.

Function: count-edges (digraph)

Return the number of edges in ‘digraph‘.

Package

digraph.

Source

directed-graph.lisp.

Function: count-vertices (digraph)

Return the number of vertices in ‘digraph‘.

Package

digraph.

Source

directed-graph.lisp.

Function: curry (function &rest arguments)

Returns a function that applies ‘arguments‘ and the arguments it is called with to ‘function‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: degree (digraph vertex)

Return the number of neighbors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: degree-in (digraph vertex)

Return the number of predecessors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: degree-out (digraph vertex)

Return the number of successors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: edges (digraph)

Return a fresh list of the edges of ‘digraph‘.

Each edge will be a cons of the form ‘(predecessor . successor)‘.

Package

digraph.

Source

directed-graph.lisp.

Function: emptyp (digraph)

Return ‘t‘ if ‘digraph‘ has no vertices or edges, ‘nil‘ otherwise.

Package

digraph.

Source

directed-graph.lisp.

Function: ensure-boolean (x)

Convert ‘x‘ into a Boolean value.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: ensure-list (list)

If ‘list‘ is a list, it is returned. Otherwise returns the list designated by ‘list‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: hash-table-keys (table)

Returns a list containing the keys of hash table ‘table‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: insert-edge (digraph predecessor successor)

Insert an edge from ‘predecessor‘ to ‘successor‘ if not already present.

Returns ‘t‘ if the edge was already in the graph, or ‘nil‘ if it was inserted.

The ‘predecessor‘ and ‘successor‘ vertices must already exist in the graph. If ‘predecessor‘ is not in the graph a ‘missing-predecessor‘ error will be signaled. Otherwise, if ‘successor‘ is not in the graph, a ‘missing-successor‘ error will be signaled.

Package

digraph.

Source

directed-graph.lisp.

Function: insert-vertex (digraph vertex)

Insert ‘vertex‘ into the graph if it is not already a member.

Returns ‘t‘ if the vertex was already in the graph, or ‘nil‘ if it was inserted.

Package

digraph.

Source

directed-graph.lisp.

Function: leafp (digraph vertex)

Return whether ‘vertex‘ is a leaf vertex in ‘digraph‘.

Package

digraph.

Source

directed-graph.lisp.

Function: leafs (digraph)

Return all leaf vertices in ‘digraph‘.

This is currently O(vertices).

A root is a vertex with no outgoing edges (i.e. out-degree 0).

Package

digraph.

Source

directed-graph.lisp.

Function: make-digraph (&key initial-vertices test hash-function)

Create and return a new digraph.

‘initial-vertices‘ can be a sequence of vertices to add to the graph.

‘test‘ should be one of the hash table equality predicates.

If your Lisp implementation supports the ‘:hash-function‘ argument for creating hash tables with custom predicates, you can specify one with ‘hash-function‘.

Package

digraph.

Source

directed-graph.lisp.

Function: map-breadth-first (function digraph start-vertex)

Apply ‘function‘ to the vertices of a breadth-first traversal of ‘digraph‘.

Returns a fresh list with the results.

Vertices are processed in breadth-first order, beginning at ‘start-vertex‘, and the resulting list has this order as well.

Cycles in the graph will not be traversed into.

Package

digraph.

Source

directed-graph.lisp.

Function: map-depth-first (function digraph start-vertex)

Apply ‘function‘ to the vertices of a breadth-first traversal of ‘digraph‘.

Returns a fresh list with the results.

Vertices are processed in depth-first order, beginning at ‘start-vertex‘, and the resulting list has this order as well.

Cycles in the graph will not be traversed into.

Package

digraph.

Source

directed-graph.lisp.

Function: map-edges (function digraph)

Return a fresh list with the results of calling ‘function‘ on each edge.

For each edge, ‘function‘ will be called once with two arguments:

(function predecessor successor)

The order of the resulting list is unspecified.

Package

digraph.

Source

directed-graph.lisp.

Function: map-vertices (function digraph)

Return a fresh list with the results of calling ‘function‘ on each vertex.

The order of the resulting list is unspecified.

Package

digraph.

Source

directed-graph.lisp.

Function: mapc-breadth-first (function digraph start-vertex)

Apply ‘function‘ to the vertices of a breadth-first traversal of ‘digraph‘.

Returns ‘nil‘.

Vertices are processed in breadth-first order, beginning at ‘start-vertex‘.

Cycles in the graph will not be traversed into.

Package

digraph.

Source

directed-graph.lisp.

Function: mapc-depth-first (function digraph start-vertex)

Apply ‘function‘ to the vertices of a depth-first traversal of ‘digraph‘.

Returns ‘nil‘.

Vertices are processed in depth-first order, beginning at ‘start-vertex‘.

Cycles in the graph will not be traversed into.

Package

digraph.

Source

directed-graph.lisp.

Function: mapc-edges (function digraph)

Call ‘function‘ on each edge in ‘digraph‘.

For each edge, ‘function‘ will be called once with two arguments:

(function predecessor successor)

The order in which the edges are processed is unspecified.

Returns ‘nil‘.

Package

digraph.

Source

directed-graph.lisp.

Function: mapc-vertices (function digraph)

Call ‘function‘ on each vertex in ‘digraph‘.

The order in which the vertices are processed is unspecified.

Returns ‘nil‘.

Package

digraph.

Source

directed-graph.lisp.

Function: maphash-keys (function table)

Like ‘maphash‘, but calls ‘function‘ with each key in the hash table ‘table‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: mkstr (&rest args)

Receives any number of objects (string, symbol, keyword, char, number), extracts all printed representations, and concatenates them all into one string.

Extracted from _On Lisp_, chapter 4.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: neighbors (digraph vertex)

Return a fresh list of the neighbors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: predecessors (digraph vertex)

Return a fresh list of the predecessors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: rcurry (function &rest arguments)

Returns a function that applies the arguments it is called with and ‘arguments‘ to ‘function‘.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: reachablep (digraph start target &key strategy)

Return ‘t‘ if it is possible to reach ‘target‘ from ‘start‘, otherwise ‘nil‘.

All vertices are reachable from themselves.

Otherwise a ‘target‘ is reachable from ‘start‘ if a directed path exists from the start to the target.

‘strategy‘ will be used to determine how to traverse the graph when searching for a path, and can be one of ‘:breadth-first‘ or ‘:depth-first‘.

Package

digraph.

Source

directed-graph.lisp.

Function: remove-edge (digraph predecessor successor)

Remove an edge from ‘predecessor‘ to ‘successor‘ if present.

Returns ‘t‘ if there was such an edge, or ‘nil‘ if not.

Package

digraph.

Source

directed-graph.lisp.

Function: remove-vertex (digraph vertex)

Remove ‘vertex‘ from the graph if present.

If there are any edges to/from ‘vertex‘ they will be automatically removed.

Returns ‘t‘ if there was such a vertex, or ‘nil‘ if not.

Package

digraph.

Source

directed-graph.lisp.

Function: rootp (digraph vertex)

Return whether ‘vertex‘ is a root vertex in ‘digraph‘.

Package

digraph.

Source

directed-graph.lisp.

Function: roots (digraph)

Return all root vertices in ‘digraph‘.

This is currently O(vertices).

A root is a vertex with no incoming edges (i.e. in-degree 0).

Package

digraph.

Source

directed-graph.lisp.

Function: successors (digraph vertex)

Return a fresh list of the successors of ‘vertex‘.

Package

digraph.

Source

directed-graph.lisp.

Function: symb (&rest args)

Receives any number of objects, concatenates all into one string with ‘#’mkstr‘ and converts them to symbol.

Extracted from _On Lisp_, chapter 4.

See also: ‘symbolicate‘

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: topological-sort (digraph)

Return a fresh list of the vertices of ‘digraph‘ in topological order.

Edges are treated as meaning "depends on", so an edge ‘A –> B‘ means "A depends on B" and that B must come before A in the resulting list. Aside from this restriction, the order of the resulting list is arbitrary.

The order in which the vertices are processed is unspecified.

A ‘topological-sort-cycle‘ error will be signaled if the graph contains a cycle.

Package

digraph.

Source

directed-graph.lisp.

Function: vertices (digraph)

Return a fresh list of the vertices of ‘digraph‘.

Package

digraph.

Source

directed-graph.lisp.


6.1.4 Generic functions

Generic Reader: vertex-involved (condition)

Retrieve the vertex involved in the condition.

Package

digraph.

Source

directed-graph.lisp.

Methods
Reader Method: vertex-involved ((condition missing-vertex))
Target Slot

vertex-involved%.

Reader Method: vertex-involved ((condition topological-sort-cycle))
Target Slot

vertex-involved%.


6.1.5 Standalone methods

Method: print-object ((d digraph) stream)
Source

directed-graph.lisp.


6.1.6 Conditions

Condition: digraph-error

Base condition for digraph-related errors.

Package

digraph.

Source

directed-graph.lisp.

Direct superclasses

error.

Direct subclasses
Condition: missing-predecessor

An error signaled when trying to insert an edge whose predecessor is not in the graph.

‘vertex-involved‘ can be used to retrieve the offending predecessor.

Package

digraph.

Source

directed-graph.lisp.

Direct superclasses

missing-vertex.

Condition: missing-successor

An error signaled when trying to insert an edge whose successor is not in the graph.

‘vertex-involved‘ can be used to retrieve the offending successor.

Package

digraph.

Source

directed-graph.lisp.

Direct superclasses

missing-vertex.

Condition: missing-vertex

Base condition for errors signaled when inserting an edge with a vertex missing.

Package

digraph.

Source

directed-graph.lisp.

Direct superclasses

digraph-error.

Direct subclasses
Direct methods

vertex-involved.

Direct slots
Slot: vertex-involved%
Initargs

:vertex-involved

Readers

vertex-involved.

Writers

This slot is read-only.

Condition: topological-sort-cycle

An error signaled when topologically sorting a graph that contains a cycle.

‘vertex-involved‘ can be used to retrieve one of the vertices involved in a cycle. Which vertex in the cycle is chosen is arbitrary.

Package

digraph.

Source

directed-graph.lisp.

Direct superclasses

digraph-error.

Direct methods

vertex-involved.

Direct slots
Slot: vertex-involved%
Initargs

:vertex-involved

Readers

vertex-involved.

Writers

This slot is read-only.


6.1.7 Classes

Class: digraph

A directed graph. Use ‘make-digraph‘ to create one.

Package

digraph.

Source

directed-graph.lisp.

Direct methods
Direct slots
Slot: nodes
Initargs

:nodes

Readers

digraph-nodes.

Writers

This slot is read-only.

Slot: test
Initargs

:test

Readers

digraph-test.

Writers

This slot is read-only.

Slot: hash-function
Initargs

:hash-function

Readers

digraph-hash-function.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Special variables

Special Variable: *utilities*
Package

digraph.quickutils.

Source

quickutils-package.lisp.


6.2.2 Macros

Macro: do-edges ((predecessor-symbol successor-symbol digraph) &body body)
Package

digraph.

Source

directed-graph.lisp.

Macro: do-vertices ((symbol digraph) &body body)
Package

digraph.

Source

directed-graph.lisp.

Macro: pred (digraph object)
Package

digraph.

Source

directed-graph.lisp.

Macro: succ (digraph object)
Package

digraph.

Source

directed-graph.lisp.


6.2.3 Ordinary functions

Function: ensure-function (function-designator)

Returns the function designated by ‘function-designator‘:
if ‘function-designator‘ is a function, it is returned, otherwise it must be a function name and its ‘fdefinition‘ is returned.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: find-vertex-if (function digraph)
Package

digraph.

Source

directed-graph.lisp.

Function: insert-chain (digraph predecessor successor &rest later-successors)

Insert edges between a series of vertices.

Give a series of vertices ‘V0 V1 ... Vn‘, edges between each will be inserted if not already present:

V0 -> V1 -> ... -> Vn

All vertices must exist in the graph already.

Returns ‘nil‘.

Package

digraph.

Source

directed-graph.lisp.

Function: make-gensym-list (length &optional x)

Returns a list of ‘length‘ gensyms, each generated as if with a call to ‘make-gensym‘, using the second (optional, defaulting to ‘"G"‘) argument.

Package

digraph.quickutils.

Source

quickutils.lisp.

Function: make-hash-table-portably (&key size test hash-function)
Package

digraph.

Source

directed-graph.lisp.

Function: remove/swapped-arguments (sequence item &rest keyword-arguments)
Package

digraph.quickutils.

Source

quickutils.lisp.

Function: topological-sort% (function digraph)
Package

digraph.

Source

directed-graph.lisp.


6.2.4 Generic functions

Generic Reader: digraph-hash-function (object)
Package

digraph.

Methods
Reader Method: digraph-hash-function ((digraph digraph))

automatically generated reader method

Source

directed-graph.lisp.

Target Slot

hash-function.

Generic Reader: digraph-nodes (object)
Package

digraph.

Methods
Reader Method: digraph-nodes ((digraph digraph))

automatically generated reader method

Source

directed-graph.lisp.

Target Slot

nodes.

Generic Reader: digraph-test (object)
Package

digraph.

Methods
Reader Method: digraph-test ((digraph digraph))

automatically generated reader method

Source

directed-graph.lisp.

Target Slot

test.


6.2.5 Types

Type: string-designator ()

A string designator type. A string designator is either a string, a symbol, or a character.

Package

digraph.quickutils.

Source

quickutils.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   A   B   C   D   E   F   G   H   I   L   M   N   O   P   R   S   T   V   W  
Index Entry  Section

A
appendf: Public macros
arbitrary-vertex: Public ordinary functions

B
build-from-leafs: Public ordinary functions
build-from-roots: Public ordinary functions

C
Compiler Macro, compose: Public compiler macros
Compiler Macro, curry: Public compiler macros
compose: Public compiler macros
compose: Public ordinary functions
contains-edge-p: Public ordinary functions
contains-vertex-p: Public ordinary functions
copy-digraph: Public ordinary functions
count-edges: Public ordinary functions
count-vertices: Public ordinary functions
curry: Public compiler macros
curry: Public ordinary functions

D
degree: Public ordinary functions
degree-in: Public ordinary functions
degree-out: Public ordinary functions
digraph-hash-function: Private generic functions
digraph-hash-function: Private generic functions
digraph-nodes: Private generic functions
digraph-nodes: Private generic functions
digraph-test: Private generic functions
digraph-test: Private generic functions
do-edges: Private macros
do-vertices: Private macros
dohash: Public macros

E
edges: Public ordinary functions
emptyp: Public ordinary functions
ensure-boolean: Public ordinary functions
ensure-function: Private ordinary functions
ensure-gethash: Public macros
ensure-list: Public ordinary functions

F
find-vertex-if: Private ordinary functions
Function, arbitrary-vertex: Public ordinary functions
Function, build-from-leafs: Public ordinary functions
Function, build-from-roots: Public ordinary functions
Function, compose: Public ordinary functions
Function, contains-edge-p: Public ordinary functions
Function, contains-vertex-p: Public ordinary functions
Function, copy-digraph: Public ordinary functions
Function, count-edges: Public ordinary functions
Function, count-vertices: Public ordinary functions
Function, curry: Public ordinary functions
Function, degree: Public ordinary functions
Function, degree-in: Public ordinary functions
Function, degree-out: Public ordinary functions
Function, edges: Public ordinary functions
Function, emptyp: Public ordinary functions
Function, ensure-boolean: Public ordinary functions
Function, ensure-function: Private ordinary functions
Function, ensure-list: Public ordinary functions
Function, find-vertex-if: Private ordinary functions
Function, hash-table-keys: Public ordinary functions
Function, insert-chain: Private ordinary functions
Function, insert-edge: Public ordinary functions
Function, insert-vertex: Public ordinary functions
Function, leafp: Public ordinary functions
Function, leafs: Public ordinary functions
Function, make-digraph: Public ordinary functions
Function, make-gensym-list: Private ordinary functions
Function, make-hash-table-portably: Private ordinary functions
Function, map-breadth-first: Public ordinary functions
Function, map-depth-first: Public ordinary functions
Function, map-edges: Public ordinary functions
Function, map-vertices: Public ordinary functions
Function, mapc-breadth-first: Public ordinary functions
Function, mapc-depth-first: Public ordinary functions
Function, mapc-edges: Public ordinary functions
Function, mapc-vertices: Public ordinary functions
Function, maphash-keys: Public ordinary functions
Function, mkstr: Public ordinary functions
Function, neighbors: Public ordinary functions
Function, predecessors: Public ordinary functions
Function, rcurry: Public ordinary functions
Function, reachablep: Public ordinary functions
Function, remove-edge: Public ordinary functions
Function, remove-vertex: Public ordinary functions
Function, remove/swapped-arguments: Private ordinary functions
Function, rootp: Public ordinary functions
Function, roots: Public ordinary functions
Function, successors: Public ordinary functions
Function, symb: Public ordinary functions
Function, topological-sort: Public ordinary functions
Function, topological-sort%: Private ordinary functions
Function, vertices: Public ordinary functions

G
Generic Function, digraph-hash-function: Private generic functions
Generic Function, digraph-nodes: Private generic functions
Generic Function, digraph-test: Private generic functions
Generic Function, vertex-involved: Public generic functions

H
hash-table-keys: Public ordinary functions

I
insert-chain: Private ordinary functions
insert-edge: Public ordinary functions
insert-vertex: Public ordinary functions

L
leafp: Public ordinary functions
leafs: Public ordinary functions

M
Macro, appendf: Public macros
Macro, do-edges: Private macros
Macro, do-vertices: Private macros
Macro, dohash: Public macros
Macro, ensure-gethash: Public macros
Macro, once-only: Public macros
Macro, pred: Private macros
Macro, removef: Public macros
Macro, succ: Private macros
Macro, with-gensyms: Public macros
Macro, with-unique-names: Public macros
make-digraph: Public ordinary functions
make-gensym-list: Private ordinary functions
make-hash-table-portably: Private ordinary functions
map-breadth-first: Public ordinary functions
map-depth-first: Public ordinary functions
map-edges: Public ordinary functions
map-vertices: Public ordinary functions
mapc-breadth-first: Public ordinary functions
mapc-depth-first: Public ordinary functions
mapc-edges: Public ordinary functions
mapc-vertices: Public ordinary functions
maphash-keys: Public ordinary functions
Method, digraph-hash-function: Private generic functions
Method, digraph-nodes: Private generic functions
Method, digraph-test: Private generic functions
Method, print-object: Public standalone methods
Method, vertex-involved: Public generic functions
Method, vertex-involved: Public generic functions
mkstr: Public ordinary functions

N
neighbors: Public ordinary functions

O
once-only: Public macros

P
pred: Private macros
predecessors: Public ordinary functions
print-object: Public standalone methods

R
rcurry: Public ordinary functions
reachablep: Public ordinary functions
remove-edge: Public ordinary functions
remove-vertex: Public ordinary functions
remove/swapped-arguments: Private ordinary functions
removef: Public macros
rootp: Public ordinary functions
roots: Public ordinary functions

S
succ: Private macros
successors: Public ordinary functions
symb: Public ordinary functions

T
topological-sort: Public ordinary functions
topological-sort%: Private ordinary functions

V
vertex-involved: Public generic functions
vertex-involved: Public generic functions
vertex-involved: Public generic functions
vertices: Public ordinary functions

W
with-gensyms: Public macros
with-unique-names: Public macros


A.4 Data types

Jump to:   C   D   F   M   P   Q   S   T   V  
Index Entry  Section

C
cl-digraph: The cl-digraph system
cl-digraph.asd: The cl-digraph/cl-digraph․asd file
Class, digraph: Public classes
Condition, digraph-error: Public conditions
Condition, missing-predecessor: Public conditions
Condition, missing-successor: Public conditions
Condition, missing-vertex: Public conditions
Condition, topological-sort-cycle: Public conditions

D
digraph: The digraph package
digraph: Public classes
digraph-error: Public conditions
digraph.quickutils: The digraph․quickutils package
directed-graph.lisp: The cl-digraph/src/directed-graph․lisp file

F
File, cl-digraph.asd: The cl-digraph/cl-digraph․asd file
File, directed-graph.lisp: The cl-digraph/src/directed-graph․lisp file
File, package.lisp: The cl-digraph/package․lisp file
File, quickutils-package.lisp: The cl-digraph/vendor/quickutils-package․lisp file
File, quickutils.lisp: The cl-digraph/vendor/quickutils․lisp file

M
missing-predecessor: Public conditions
missing-successor: Public conditions
missing-vertex: Public conditions
Module, src: The cl-digraph/src module
Module, vendor: The cl-digraph/vendor module

P
Package, digraph: The digraph package
Package, digraph.quickutils: The digraph․quickutils package
package.lisp: The cl-digraph/package․lisp file

Q
quickutils-package.lisp: The cl-digraph/vendor/quickutils-package․lisp file
quickutils.lisp: The cl-digraph/vendor/quickutils․lisp file

S
src: The cl-digraph/src module
string-designator: Private types
System, cl-digraph: The cl-digraph system

T
topological-sort-cycle: Public conditions
Type, string-designator: Private types

V
vendor: The cl-digraph/vendor module