on master help sign in
Add Dict.filter
commit277fabe49f32ca48a2f56a02dab74305a05f0e62 authorHarry Garrood <harry@garrood.me> dateTue 15 Apr 2014, 10:25 (13 years ago) parent97c9475
1 file changed+6
libraries/Dict.elm+6
libraries/Dict.elm+6
@@ -351,3 +351,9 @@ toList t = foldr (\k v acc -> (k,v) :: acc) [] t
351351{-| Convert an association list into a dictionary. -}
352352fromList : [(comparable,v)] -> Dict comparable v
353353fromList assocs = List.foldl (\(k,v) d -> insert k v d) empty assocs
354+
355+{-| Keep only key-value pairs where the value satisfies a predicate. -}
356+filter : (v -> Bool) -> Dict comparable v -> Dict comparable v
357+filter p =
358+ let add k v t = if p v then insert k v t else t
359+ in foldl combine empty