这需要标记为" 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代码。
感谢。