Skip to content

Latest commit

 

History

History
28 lines (19 loc) · 982 Bytes

README.org

File metadata and controls

28 lines (19 loc) · 982 Bytes

Anagrams! In Haskell!

Compile

Run make to compile the program with GHC.

Run

Specify a dictionary file with the -f option; the default is /usr/share/dict/words. All other command-line arguments are strung together to form the input phrase.

Notes

The algorithm turns out to be slightly similar to that of the an program. An attempt as been made to be efficient, by using Haskell’s unboxed vectors and limiting the contents to 8-bit integers. This means you can’t have more that 255 of any given character in a word/anagram string, but this is fairly trivially modifiable in the source (look for Int8 and replace with Int32 or whatever).

When reading in the dictionary, some pre-processing is done to cut it down to size. Some of this will be perhaps configurable on the command-line in the future (all the filters are composed together into a pipeline; see filterAll in Main.hs).

To do: cut down the dictionary size dynamically during the algorithm.