Simple tool that caching intermedidate result in sequential text searching.
For example, we have some contact in memory:
Dinesh Carlos
Earl Fletcher
Dash Marnie
Finbar Alastair
When user type 'D', searcher will enumerate all data to do compare, and return result list:
Dinesh Carlos
Dash Marnie
And then user type 'a' after 'D', searcher would take 'Da' as keyword and search in the result returned from last searching(listed above), instead of enumerating all data.
Have a look in file Test.m.