Bap_strings_unscrambler.MakeMake(Alphabet) creates an unscrambler for the given alphabet.
The unscrambler will build all words from the provided sequence of characters, essentially it is the same as playing scrabble. For example, from characters h,e,l,l,o it will build words "hell", "hello", "ell", "hoe", and so on, provided that they are known to the unscrambler, i.e., present in its dictionary.
The unscrambler requires to know the alphabet of the language beforehand, because it uses efficient trie-like representation of the dictionary that enables O(1) search for words (O(1) in terms of the dictionary size).
include Core_kernel.Bin_prot.Binable.S with type t := tval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int -> t) Bin_prot.Read.readerval bin_writer_t : t Bin_prot.Type_class.writerval bin_reader_t : t Bin_prot.Type_class.readerval bin_t : t Bin_prot.Type_class.tval empty : tan empty unscrambler that doesn't know any words
val of_file : string -> tof_file name reads the dictionary from file name, each word is on a separate line. (the standard linux dictionary file format)
val of_files : string list -> tof_files names reads the dictionary from all provided file names, each file should be a sequence of newline separated words.
val build : t -> string -> string Core_kernel.Sequence.tbuild d chars returns a sequence of all words in the dictionary d that could be built from the sequence of characters chars
val is_buildable : t -> string -> boolis_buildable d chars returns true if in the dictionary d exists a word that can be built from the given characters.