Commit dfef8236 authored by Kai Zhang's avatar Kai Zhang

add filterEdge

parent ea904e5a
......@@ -18,6 +18,7 @@ module IGraph
, suc
, filterNode
, filterEdge
) where
import Control.Arrow ((***))
......@@ -154,3 +155,12 @@ filterNode f gr = runST $ do
gr' <- thaw gr
delNodes deleted gr'
unsafeFreeze gr'
-- | Keep nodes that satisfy the constraint
filterEdge :: (Hashable v, Eq v, Read v, Graph d)
=> (Edge -> Bool) -> LGraph d v e -> LGraph d v e
filterEdge f gr = runST $ do
let deleted = filter (not . f) $ edges gr
gr' <- thaw gr
delEdges deleted gr'
unsafeFreeze gr'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment