| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Graph.Immutable.Tagged
- newtype Vertex g = Vertex {}
- newtype Vertices g v = Vertices {
- getVertices :: Vector v
- data Edge g = Edge {
- edgeVertexA :: !Int
- edgeVertexB :: !Int
- data Graph g e v = Graph {
- graphVertices :: !(Vector v)
- graphOutboundNeighborVertices :: !(Vector (Vector Int))
- graphOutboundNeighborEdges :: !(Vector (Vector e))
- breadthFirstBy :: (Ord s, Monoid s) => (v -> v -> s -> e -> s) -> Vertex g -> Graph g e v -> Vertices g s
- lookupVertex :: Eq v => v -> Graph g e v -> Maybe (Vertex g)
- traverseNeighbors_ :: Applicative m => (e -> Vertex g -> v -> m a) -> Vertex g -> Graph g e v -> m ()
- mutableIForM_ :: PrimMonad m => MVector (PrimState m) a -> (Int -> a -> m b) -> m ()
- mutableIFoldM' :: PrimMonad m => (a -> Int -> b -> m a) -> a -> MVector (PrimState m) b -> m a
Documentation
Constructors
| Vertices | |
Fields
| |
Constructors
| Edge | |
Fields
| |
The neighbor vertices and neighbor edges must have equal length.
Constructors
| Graph | |
Fields
| |
breadthFirstBy :: (Ord s, Monoid s) => (v -> v -> s -> e -> s) -> Vertex g -> Graph g e v -> Vertices g s Source
This is a generalization of Dijkstra's algorithm.
traverseNeighbors_ :: Applicative m => (e -> Vertex g -> v -> m a) -> Vertex g -> Graph g e v -> m () Source