Commit dfef8236 authored by Kai Zhang's avatar Kai Zhang

add filterEdge

parent ea904e5a
...@@ -18,6 +18,7 @@ module IGraph ...@@ -18,6 +18,7 @@ module IGraph
, suc , suc
, filterNode , filterNode
, filterEdge
) where ) where
import Control.Arrow ((***)) import Control.Arrow ((***))
...@@ -154,3 +155,12 @@ filterNode f gr = runST $ do ...@@ -154,3 +155,12 @@ filterNode f gr = runST $ do
gr' <- thaw gr gr' <- thaw gr
delNodes deleted gr' delNodes deleted gr'
unsafeFreeze 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