Module
Hylograph.Optics.Graph
- Package
- purescript-hylograph-optics
- Repository
- afcondon/purescript-hylograph-optics
Graph Optics
Lenses, traversals, and accessors for weighted graphs.
#_neighbors Source
_neighbors :: NodeId -> Traversal' Graph NodeIdTraverse all neighbors of a node.
toListOf (_neighbors (NodeId "A")) graph
-- => All nodes connected to A
#_outEdges Source
_outEdges :: NodeId -> Traversal' Graph EdgeTraverse all outgoing edges from a node.
toListOf (_outEdges (NodeId "A")) graph
-- => All edges where A is the source
#_inEdges Source
_inEdges :: NodeId -> Traversal' Graph EdgeTraverse all incoming edges to a node.
toListOf (_inEdges (NodeId "A")) graph
-- => All edges where A is the target
#_nodesWhere Source
_nodesWhere :: (NodeId -> Boolean) -> Traversal' Graph NodeIdTraverse nodes matching a predicate.
toListOf (_nodesWhere (\(NodeId s) -> String.length s == 1)) graph
-- => All single-letter node IDs
#_edgesWhere Source
_edgesWhere :: (Edge -> Boolean) -> Traversal' Graph EdgeTraverse edges matching a predicate.
toListOf (_edgesWhere (\e -> e.weight > 1.0)) graph
-- => All edges with weight > 1.0