anagram.hs 253 B

123456789
  1. import Data.List
  2. sweep::(String -> [String]) -> String -> String -> [String]
  3. sweep f l stack = case stack of
  4. [] -> [l]
  5. cur:substack -> concat [map (\l -> cur:l) (f (delete cur l)), sweep f l substack]
  6. ana::String -> [String]
  7. ana l = sweep (ana) l l