word-trie-0.3.0: Implementation of a finite trie over words.
LicenseGPL-2
Maintainerfuuzetsu@fuuzetsu.co.uk
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010
Extensions
  • Cpp
  • TemplateHaskell
  • TemplateHaskellQuotes
  • DeriveGeneric

Data.Trie

Description

An implementation of a trie over a words. Properties:

fromList . toListid
toList . fromString ≡ (:[])
sort . nub . toList . fromListsort . nub
Synopsis

Documentation

empty :: Trie Source #

A blank Trie

insert :: String -> Trie -> Trie Source #

Insert a new string into the trie.

fromList :: [String] -> Trie Source #

Take a list of String and compress it into a Trie

toList :: Trie -> [String] Source #

Take a trie and expand it into the strings that it represents

lookupPrefix :: MonadPlus m => String -> Trie -> m Trie Source #

Takes a trie and a prefix and returns the sub-trie that of words with that prefix

forcedNext :: Trie -> String Source #

Finds the longest certain path down the trie starting at a the root Invariant Assumption: All paths have at least one true node below them

data Trie Source #

Instances

Instances details
Generic Trie Source # 
Instance details

Defined in Data.Trie

Associated Types

type Rep Trie :: Type -> Type Source #

Methods

from :: Trie -> Rep Trie x Source #

to :: Rep Trie x -> Trie Source #

Show Trie Source # 
Instance details

Defined in Data.Trie

Binary Trie Source # 
Instance details

Defined in Data.Trie

Eq Trie Source # 
Instance details

Defined in Data.Trie

Methods

(==) :: Trie -> Trie -> Bool Source #

(/=) :: Trie -> Trie -> Bool Source #

type Rep Trie Source # 
Instance details

Defined in Data.Trie

type Rep Trie = D1 ('MetaData "Trie" "Data.Trie" "word-trie-0.3.0-8bUyIb1ZtByDL04Ih182cr" 'False) (C1 ('MetaCons "Trie" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Char Trie))))

possibleSuffixes :: String -> Trie -> [String] Source #

Helper function, finds all the suffixes of a given prefix

certainSuffix :: String -> Trie -> String Source #

Helper function, finds the longest certain path down the trie starting at a given word