Skip to content

Commit 99fdc97

Browse files
committed
Optimized BeamExtraction
1 parent e39dac9 commit 99fdc97

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src-extra/transformation/JbeamEdit/Transformation/BeamExtraction.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import Data.Map (Map)
77
import Data.Map qualified as M
88
import Data.Maybe (catMaybes)
99
import Data.Ord (Down (Down))
10+
import Data.Set (Set)
11+
import Data.Set qualified as S
1012
import Data.Text (Text)
1113
import Data.Vector (Vector)
1214
import Data.Vector qualified as V
@@ -20,15 +22,14 @@ beamQuery :: NP.NodePath
2022
beamQuery = fromList [NP.ObjectIndex 0, NP.ObjectKey "beams"]
2123

2224
rejectUnknownName
23-
:: Foldable t
24-
=> t Text
25+
:: Set Text
2526
-> Maybe (Vector Text)
2627
-> Maybe (Vector Text)
2728
rejectUnknownName knownNodeNames maybeBeam =
2829
bool
2930
maybeBeam
3031
Nothing
31-
(any (any (`notElem` knownNodeNames)) maybeBeam)
32+
(any (any (`S.notMember` knownNodeNames)) maybeBeam)
3233

3334
possiblyBeam :: Node -> Either Node (Maybe (Vector Text))
3435
possiblyBeam node
@@ -53,7 +54,7 @@ vertexConns
5354
vertexConns maxSupport topNode vsPerType =
5455
go <$> extractBeams topNode
5556
where
56-
knownNodeNames = concatMap (map anVertexName) vsPerType
57+
knownNodeNames = foldMap (foldr (S.insert . anVertexName) mempty) vsPerType
5758
go beams =
5859
let possiblyInnerBeam = (:) . fmap (rejectUnknownName knownNodeNames) . possiblyBeam
5960
(badNodes, beamPairs) =

0 commit comments

Comments
 (0)