From 9f1f3417d70f505da30d57a3669ec8b0cf7314fa Mon Sep 17 00:00:00 2001 From: Brian Hicks Date: Sat, 22 Feb 2020 06:11:10 -0600 Subject: [PATCH] don't iterate over data so much --- src/Wave.elm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Wave.elm b/src/Wave.elm index 77994fc..1ca857e 100644 --- a/src/Wave.elm +++ b/src/Wave.elm @@ -279,10 +279,17 @@ propagateInDirection source sourceCell direction ( Wave wave, todo ) = |> Maybe.withDefault Set.empty Open remaining_ -> - remaining_ - |> Set.toList - |> List.filterMap (\value -> Dict.get ( value, direction ) wave.rules) - |> List.foldl Set.union Set.empty + Set.foldl + (\value acc -> + case Dict.get ( value, direction ) wave.rules of + Just rules -> + Set.union acc rules + + Nothing -> + acc + ) + Set.empty + remaining_ reduced = Set.intersect remaining possibleInDirection