Haskell Palindrome Rearranging
import qualified Data.Map.Strict as Map
palindromeRearranging :: String -> Bool
palindromeRearranging inputString = length (filter odd (Map.elems counts)) <= 1
where
counts = Map.fromListWith (+) [(c, 1 :: Int) | c <- inputString]
This counts character frequency and checks whether the string has the right number of odd counts to form a palindrome.