Knuth–Morris–Pratt illustrated - Moy, Cameron (Journal of Functional Programming)