Skip to content

Instantly share code, notes, and snippets.

@rizary
Created July 5, 2019 06:21
Show Gist options
  • Select an option

  • Save rizary/dc7c31e64fd74fb484fba0e185c3bf3d to your computer and use it in GitHub Desktop.

Select an option

Save rizary/dc7c31e64fd74fb484fba0e185c3bf3d to your computer and use it in GitHub Desktop.
GHCi, version 8.6.4: http://www.haskell.org/ghc/ :? for help
Prelude> import qualified Data.Map as Map
Prelude Map> import Data.Monoid.Endo
Prelude Map Data.Monoid.Endo> let m = Map.fromList [("A",'a'),("B",'b'),("C",'c')]
Prelude Map Data.Monoid.Endo> let deleteA = Endo $ Map.delete "A"
Prelude Map Data.Monoid.Endo> let deleteC = Endo $ Map.delete "C"
Prelude Map Data.Monoid.Endo> appEndo deleteA m
fromList [("B",'b'),("C",'c')]
Prelude Map Data.Monoid.Endo> appEndo deleteC m
fromList [("A",'a'),("B",'b')]
Prelude Map Data.Monoid.Endo> appEndo (deleteA <> deleteC) m
fromList [("B",'b')]
Prelude Map Data.Monoid.Endo> appEndo (foldMap (Endo . Map.delete) ["A","B"]) m
fromList [("C",'c')]
Prelude Map Data.Monoid.Endo> :t deleteA
deleteA :: Endo (Map.Map [Char] a)
Prelude Map Data.Monoid.Endo> :t appEndo deleteA
appEndo deleteA :: Map.Map [Char] a -> Map.Map [Char] a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment