KMP子串搜索Haskell

时间:2017-05-09 14:27:51

标签: haskell

这需要标记为" this"。如果有人可以通过标记它来关闭它将是伟大的。感谢。

在C ++中实现KMP(命令式)之后,我现在正试图在Haskell中实现它。我遇到了这个post。我想了解"预处理" KMP的一步正在完成。

makeTable' []     failure = KMP True failure
makeTable' (x:xs) failure = KMP False test
   where  test  c = if c == x then success else failure c
          success = makeTable' xs (next (failure x))

我无法理解桌子的构建方式。特别是通过调用table来定义(const table)。表格的价值在哪里?

makeTable :: Eq a => [a] -> KMP a
makeTable xs = table
   where table = makeTable' xs (const table)

理解这一点,感谢任何帮助。请给我任何阅读指南,这将有助于理解这段Haskell代码。

感谢。

0 个答案:

没有答案