Directed graph utilities
Factor handbook » The language » Collections

Next:Locked I/O buffers

Words for treating associative mappings as directed graphs can be found in the graphs vocabulary. A directed graph is represented as an assoc mapping each vertex to a hash-set of edges entering that vertex.

To create a new graph, just create an assoc, for example by calling <hashtable>. To add vertices and edges to a graph:
add-vertex ( vertex edges graph -- )

To remove vertices from the graph:
remove-vertex ( vertex edges graph -- )

Since graphs are represented as assocs, they can be cleared out by calling clear-assoc.

You can perform queries on a graph:
closure ( vertex quot: ( vertex -- edges ) -- set )

Directed graphs are used to maintain cross-referencing information for Definitions.