This is good. I adapted it to Haskell, recording letter frequencies in Maps/dictionaries. The Map data structure is already an instance of the Eq typeclass, so it was a one-liner to add the equality check:
import qualified Data.Map.Strict as M
-- incrementor for Map entries (used by Map's alter function)
inc Nothing = Just 1
inc (Just x) = Just (x+1)
-- produces a Map containing frequencies of elements in a given list (or Foldable)
-- e.g. a Map of frequencies of characters in a given word
frequencies :: (Foldable t, Ord k, Num a) => t k -> M.Map k a
frequencies = foldr (M.alter inc) M.empty
-- equality is already defined for Maps :)
isAnagram word1 word2 = frequencies word1 == frequencies word2
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.